Python3関連のことを調べてみた2020年04月11日

Python3関連のことを調べてみた2020年04月11日

yukicoder contest 243 参戦記

# yukicoder contest 243 参戦記

## [A 1020 Reverse](https://yukicoder.me/problems/no/1020)

手で実際にやってみると K番目からN番目までが順に並んだ後に1番目からK-1番目が順に並んだり、逆に並んだりすることがわかります. 1番目からK-1番目の並びが順になるか逆順になるかは当然操作回数が奇数か偶数かに依存します. よって以下のようなコードで解けました.

“`python
N, K = map(int, input().split())
S = input()

if (N – K) % 2 == 0:
print(S[K-1:] + S[:K-1][::-1])
else:
print(S[K-1:] + S[:K-1])
“`

## [B 1021 Children in Classrooms](https://yukicoder.me/problems/no/1021)

ポインタを移動しながら配列を書き換えて、ポインタの情報をもとに結果を出力することも考えましたが、や

元記事を表示

[matplotlib] Jリーグ2019年の順位表を色々グラフ化してみた ~その1~

# はじめに
## 記事の概要
この記事では、Jリーグの2019年の順位表を使って、matplotlibの使い方を学びながら、サッカーにおいて順位と強く相関するものは何なのかを考察していきます。
自分の学習メモ代わりでもあるので、読みにくいかもしれませんがご容赦ください。
## 目的
・matplotlibの使い方に慣れる。
・DataFrameを扱えるようになる。
・サッカーの順位において、大事な要素を見つける。
# コードと解説
## 前提
– 開発環境
– Anaconda
– Python3
– Juptyer-notebook

## 流れ
1. Jリーグのデータサイトの順位表をチェック
2. 2つの表を結合
3. とりあえず勝ち点をプロットしてみる
4. 総得点と総失点の関係をグラフに
5. 勝・分・敗の割合を見てみる
6. 各要素の相関を見てみる
## コード
まずjリーグサイトから表を読み込み、整形。

“`Python3
import pandas as pd

url_ranking = ‘https://data.j-league.or.jp/SFR

元記事を表示

Arduinoで照度計を作成し、ログをCSV形式で保存する

##概要
Arduinoを使って照度計を作成し、そこで取れた照度のログをPythonで受け取ってPCにCSV形式で保存するコードを実装した.

##Arduinoで照度計を作成
まずは照度計を作る部分について

使った材料は主に以下の4つ
– Arduino Uno
– ブレッドボード
– フォトトランジスタ(光のセンサー)
– 220Ωの抵抗×1

配線の概要は下の図のようになる.
照度計によって流れる電流の変化をA0端子でAnalogReadしている.
スクリーンショット 2020-04-10 20.35.03.png

以下がArduinoに実装したコードになる.

“`illuminator.ino
int sensorValue = 0;

void setup() {
// put your se

元記事を表示

pythonで文字列を自然順(番号が小さい順)ソート

`sorted`は辞書順になってしまい、数値が小さい順に並ばない。
正規表現を使えば簡単に自然順にできるけど、毎回書くのが面倒なのでメモ。

### 文字列の場合
“`python3
l = [‘1′, ’10’, ‘2’]

import re
sorted(l, key=lambda x: tuple(map(int, re.findall(r’\d+’, x))))
“`

### 文字列じゃない場合(pathlib.Pathなど)
“`python3
from pathlib import Path
l = [Path(‘1′), Path(’10’), Path(‘2′)]

import re
sorted(l, key=lambda x: tuple(map(int, re.findall(r’\d+’, str(x)))))
“`

### ライブラリを使う場合
[natsort](https://pypi.org/project/natsort/)というのがある。

元記事を表示

PythonでcURL

標準ライブラリのurllibか、サードパーティライブラリのRequestsを使う方法があるが、urllibの方でやってみる。

# GET

“`python:get.py
import urllib.request
import json

url = ‘https://petstore.swagger.io/v2/store/inventory’

try:
with urllib.request.urlopen(url) as response:
body = json.loads(response.read())
headers = response.getheaders()
status = response.getcode()

print(headers)
print(status)
print(body)

except urllib.error.URLError as e:
print(e.reason)
“`

“`
>python get.py

元記事を表示

pythonでgraphを扱うライブラリnetworkxを使う(その1)

pythonでGraphまわりを扱うために,networkxをdockerで使えるようにした時のメモ。

# 行ったこと
1. Dockerfileを使ってpullしたimageをカスタマイズ
2. dockerからmatplotlibの表示をpop up

### ホストの環境
“`souece:OS
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION=”Ubuntu 16.04.6 LTS”
“`
### dockerの環境
[こちらで構築した環境](https://qiita.com/iwankoTG/items/05b39c9c42ad278917a0)を使っています。

# 1. Dockerfileを使ってpullしたimageをカスタマイズ
dockerのimageは必要なものをnvidia-dockerからpullしてきて使っていたが、graphを扱うnetworkxなどをinstallしたものが必

元記事を表示

windows10 64bitのAnacondaにCaboChaを入れる

# 概要
Windows10 64bitのAnaconda環境にCaboChaを入れるためには
WindowsにMeCabとCaboChaをインストールして
管理者権限のAnaconda Promptで以下のコマンドを打つ

“`
set CONDA_FORCE_32BIT=1
conda create -n NLP -y python=3.6.5 pip
activate NLP
pip install mecab cabocha-python
set CONDA_FORCE_32BIT=
“`

# 背景
MeCabがpipでしか入らなかったりCaboChaが32bitでしか入らなかったりする件の備忘録

# 方法
– https://taku910.github.io/mecab/#download でmecab-0.996.exeをDL&インストール
– https://drive.google.com/drive/folders/0B4y35FiV1wh7cGRCUUJHVTNJRnM でcabocha-0.69.exeをDL&インストール

管理者権限で起動したAnac

元記事を表示

Splunkで日本のCOVID19感染状況を表示する(改訂2版)

[Choropleth Mapで日本のCOVID19感染状況を表示する(改訂版)](https://qiita.com/toshikawa/items/d7c6f43016fd440508ed)ではindexに読み込んでいた。
データが一括更新なので、[Splunk本家](https://covid-19.splunkforgood.com/coronavirus__covid_19_)と同様にCSV読み込みに変更する

表示データは`2020/4/8`

なお

– [NipponMap: Japanese Map Data and Functions](https://cran.r-project.org/web/packages/NipponMap/index.html)
– [東洋経済Online新型コロナウイルス国内感染の状況](https://toyokeizai.net/sp/visual/tko/covid19/)
– [NHK 新型コロナウイルス 特設サイト](https://www3.nhk.or.jp/news/special/coronavirus/data/)

元記事を表示

眠れない夜のために〜延々と2の冪乗を表示し続けるプログラム〜two〜

common lisp で書かれています。
ubuntuでの、CLISPのインストール方法は以下の通り。

“`
sudo apt-get install clisp
“`
TWO:コード

“`
(defun two () (do ((i 1 (* i 2))) (() ()) (format t “~A ~%” i)))
“`
python版

“`two.py
#!/usr/bin/python3
i=1
while True:
i=i*2
print(i)
“`

元記事を表示

眠れない夜のために(2)〜延々と羊を数え続ける関数〜sheeps.

眠れない夜にこのプログラムを実行して、延々と画面を見続けましょう。
多倍長数なので、オーバーフローするまで寝ないで見続けると、多分、人間は死にます。

“`
(defun sheeps () (do ((i 1 (+ i 1))) (() ()) (format t “羊が~A匹~%” i)))
“`

clispのインストール(Ubuntu,Debian)

“`
sudo apt-get install clisp
“`
python版

“`sheeps.py
#!/usr/bin/python3
print (“1 sheep.”)
i=2
while True:
print(i,”sheeps.”)
i+=1
“`

元記事を表示

Python No.01

# 任意回数inputをリストに入れる
“`sumple.py
test = list(map(int, input().split()))
“`

### 関連
ABC 081 B – Shift Only

元記事を表示

茶色コーダーが青Diff「いろはちゃんとマス目」を解いてみた!

#茶色コーダーが青Diff解いてみました!
AtCoderのレートが539な私ですが、教えてもらいながら青Diffの問題を解くことができたので、記事を書いてみました!
優しく丁寧に説明しようと思っているので、まどろっこしかったらごめんなさい>< 今回解いた問題は、[AtCoder Beginner Contest 042D-いろはちゃんとマス目](https://atcoder.jp/contests/abc042/tasks/arc058_b)です。 [私の提出リンク](https://atcoder.jp/contests/abc042/submissions/11674722) #最初の発想 まず、この問題を見た時に「とあるマスからとあるマスまでの最短経路の総数を求める」という問題に見えました。 高校数学の[組み合わせのところで出てきた問題](https://mathtrain.jp/dp)に似ているので、コンビネーションを使うのではないかと考えました。 (リンク先の問題では、コンビネーションは使っていませんが、模範解答の数式(階乗を階乗で割っているやつ)を式変形するとコン

元記事を表示

2020/04現在 僕が思う最適なmac + python + tensorflow 環境構築

# 環境
macOS Catalina
python 3.7.5
pyenv 1.2.18
tensorflow 2.1.0

※本記事は、macにpython3とtensorflowを入れるだけの記事です。
editorを使った環境構築の話などは一切含まないのでご了承ください:clap:

# python環境 全然上手くいかない
もう嫌というほど、作っては壊しを繰り返しました。
そこで得た知見をシェアさせていただきます。

# まずリセットしましょう
とにかくGitから取ってくる方法やダウンロードで展開する方法、brewなど色々な方法がインターネットに転がっていますから混乱します。
とりあえず落ち着いて酒飲もや。ではなく、uninstallしましょう。

僕は、こちらの記事が参考になりました。:clap:

すべてリセットしたら、以下の考えで構築します。
– 面倒くさいですが、環境ごとに `pip install ●●` する
– 要らなくなったら壊しやすい
– tenso

元記事を表示

scipyを使って任意の関数で最尤法フィッティング

#最尤法でフィッティング
pythonには便利なライブラリがいっぱいありますが,そのうちの一つにscipyがあります.
得られたデータ から,その確率密度分布を推定するときに,scipy.statsをよく使用します.

今回,自分が作成した関数を使用して最尤法でfittingをしたので備忘録としてメモります.

下記リンクを参考にしました.
https://austinrochford.com/posts/2015-03-03-mle-python-statsmodels.html

やり方としては,
GenericLikelihoodModelを
スーパークラスとして,新しくサブクラスを作成します.

例えば今回,任意の確率密度関数として

“`math
f(x;\beta,\alpha)=2\alpha^\beta x^{\beta-1} \frac{\exp({-\alpha x})}{\Gamma(\beta)}
“`
というものを考えます.
単純にガンマ分布を2倍しただけです.

“`python
import numpy as np
from scipy import

元記事を表示

Pythonのステップアップをしたい人に贈る便利テクニック(適時更新)

## 概要

仕事でPythonを使用してLambda開発を行っています。
その中で自分で使っていたり、チームメンバーに教えているテクニックを記載しました。
ただ、テクニック1つだけで1記事かけてしまうくらい奥が深いものなのでここでは簡単な使い方のみ記載しています。
もっと詳しく知りたい!と思った人のために、[Python (テクニック名)]で検索すると詳細な情報が見れるような名前になっています。

また、私の主観ではありますが[便利度・難易度]を振りました。星が多くなるほど便利・難しくなります。

### 対象者

– Pythonの基本を一通り勉強した人
– もっとPythonのことを詳しく知りたい人

## 三連引用符

### 評価

便利度:☆
難易度:☆

### 概要

複数行の文字列を使用したい時(SQL文の記述など)に使用しています。

### 使用例

“`python:三連引用符
mojis = “””
書き方はダブルクォーテーションで
文章を囲めばOKです。
“””
print(mojis)

# => 書き方はダブルクォーテーションで
# => 文章を囲めば

元記事を表示

plotlyでアニメーションするグラフを作ったメモ

# Plotlyでアニメーションするグラフを作ったメモ
## 概要
* np.arrayを入力するとアニメーションするグラフを作成する(時系列データ)

## ソースコード
“`python
import pandas as pd
import numpy as np
import plotly.express as px

def create_animation_graph(input_array: np.array, start: str = ‘1900-01-01 0:00’, g_type: str = ‘line’, y_label: str = ‘value’,
x_label: str = ‘time’) -> object:
“””
np.arrayを入力すると、plotlyのアニメーションするグラフを返す
:param input_array:データのnp.array
:param start:開始時刻
:param g_type:グラフタイプ ‘line’,’bar’,

元記事を表示

区役所の PDF を半日でウェブアプリ化 (Part 2. PDF データの取り込み)

## はじめに
 コロナ対策の一環として、テイクアウト営業に切り替えて営業している地域のお店がたくさんあります。ただ、どこでテイクアウト営業をしているか、周知が課題です。文京区でも、テイクアウト営業を模索しているお店が多く、区もこれを支援する活動を始めました。([出前・持ち帰り 可能店を一覧に 文京区などリスト作成 日経新聞4月3日](https://r.nikkei.com/article/DGKKZO57585020S0A400C2L92000?s=3) )
 ただ、現時点では [このリスト](http://www.b-kushoren.com/pdf/bunkyo-takeout-list.pdf) は PDF 形式でした。[スマートフォンで見れるように](https://bunkyotakeouts.glideapp.io/) してこそ価値があるはず。そこで PDF のデータをエクセルに抽出してみることにしました。
## PDF のデータをエクセルに抽出
tabula-py を試したところ、十分なデータが抽出できました。成功事例を簡単にまとめておきます。
もちろん、元となる P

元記事を表示

pythonwebスクレイピング-要素を一括取得

>PythonによるWebスクレイピング〜入門編〜【業務効率化への第一歩】の9-10勉強メモ
https://www.udemy.com/course/python-scraping-beginner/
スクレイピング対象ページ(PW制限あり)
https://scraping-for-beginner.herokuapp.com/mypage

#要件: 下記テーブルの右側部分のテキスト情報を一括取得すること
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68847/96f844a7-3785-04ca-debe-04bbb581f894.png)

F12を押し、開発ツールで確認すると右側のテキストは、すべてtdでマークアップされていることがわかる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68847/2a57626f-813a-2872-e765-a7f6c725b716.pn

元記事を表示

【Python入門】Pythonで頻出の関数やメソッドのまとめ【課題形式】

# はじめに
Pythonには、様々な組み込み関数やメソッドが用意されています。
その中でも頻繁に使用するものをまとめてみました。

# 概要
Pythonを理解する上で、[トミーさんブログ](https://obgynai.com/python-roadmap/)の課題が非常に役立ったので、本記事についても課題形式で進めていきます。
不明な点がありましたら、リンク先にて詳しく説明されているので、そちらを参考にしてみてください。

# 対象者
以下の方向けの記事となっています。
* Pythonのインストールや、JupyterNotebookの環境構築が完了済み。
* 少しPythonを触ってみた。
* 自分の実力を確認したい!

# 環境
* macOS High Sierra 10.13.6
* Python 3.7.6

# 実装内容
## 課題1 入力金額の平均金額を算出する
### 技術要素
* リストと頻出メソッドの利用(append)
* リストを計算する関数の利用(sum、len)
* 入力用の関数を利用(input)
* 条件分岐の利用

### 仕様概要
* 参加者

元記事を表示

【Python】三井住友信託銀行プログラミングコンテスト2019C(DPの使いどころさん)【AtCoder】

>※この記事は、DP(動的計画法)の基本中の基本である
かえるくん問題2問がとけることを前提としています。

>- [Frog1](https://atcoder.jp/contests/dp/tasks/dp_a)
– [Frog2](https://atcoder.jp/contests/dp/tasks/dp_b)

DPでとけるんだ!!!
と感動した問題がありましたので記事にします。
DPの考え方は知っているけれども、実際の問題と結びつかない!
という人は参考になるかも(ならないかもw)

#[三井住友信託銀行プログラミングコンテスト2019C](https://atcoder.jp/contests/sumitrust2019/tasks/sumitb2019_c)
Difficulty:205
問題を読んで、bit全探索や6重for文が一瞬頭をよぎりましたがダメそう。

ちなみにDPが思いつかなくても解けます。(記事の最後に別解として載せておきます。)
しかしDPが思いつかなかった場合、
たぶん法則性をみつけるのに15分くらいかかる気がします。

**レートをあげるには

元記事を表示

OTHERカテゴリの最新記事