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

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

画像データ 型変換 【Python】

# 概要

Pythonにて画像データを扱うとき、「numpy(opencv)」「pillow」「byte」にて扱うことがある。それぞれの型変換させるための備忘録。

# numpy -> bytes(未検証)
“`python
num_bytes = num_numpy.tobytes()
“`

# numpy -> pil
“`python
num_pil = Image.fromarray(num_numpy)
“`

# pil -> bytes

“`python
num_byteio = io.BytesIO()
num_byteio.save(num_pil, format=’png’)# 仮にpngにしている
num_bytes = num_byteio.getvalue()
“`

# pil -> numpy
“`python
num_numpy = np.asarray(num_pil)
“`

# bytes -> numpy

“`python
num_byteio = io.BytesIO(num_bytes)
with Image.op

元記事を表示

windows10にpythonとVisualStudioCodeをインストールする(2020年4月版)

# 概要
Windows10にPython3とVisualStudioCodeをインストールしたので備忘録

## 動画
動画版もこちらにおいておきます。
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/QRnmsGYL0dM/0.jpg)](http://www.youtube.com/watch?v=QRnmsGYL0dM)

#手順
## 1.Python3 インストール
### 1-1. ダウンロード
下記のURLからダウンロードしてください。
https://www.python.org/
image.png

image.pngIBM CLOUDのAPIを使うにあたり、Python2から3への切り替えが必要な場合にすること

IBM CLOUDのAPIを使うにあたりPython2.7からPython3.xへ変更する場合

※yum がpythonで書かれているので削除は厳禁。

現状の確認を実施
$ python –version
Python 2.7.5
と表示されます。

まずgitをインストール
$ sudo yum install git

次にpyenvをインストールします
$ sudo curl https://pyenv.run | bash
※pyenvはpythonのバージョン切り替えツールです

インストール後に出力されるメッセージに従い~/.bashrcに以下を追加します。
export PATH=”/(Home dir)/.pyenv/bin:$PATH”
eval “$(pyenv init -)”
eval “$(pyenv virtualenv-init -)”

ログインし直すことで利用できるようになります。

$ pyenv
pyenv 1.2.17-2-ga8ca63f
Usage: pyenv []
(以下省略)
が表示されると正常にイ

元記事を表示

ERROR:root:code for hash md5 was not found.

ERROR:root:code for hash md5 was not found.

pythonでimportを使用した時、こんなエラーが出た。

python@2が原因の様でしたので、

$brew uninstall python@2

もしくは、

$brew reinstall python@2

を実行した結果、問題解決した。

元記事を表示

「この事象はX回中にY回の確率で発生します。」

# はじめに

さまざまな場面である事象が発生する確率や精度を算出し、それを伝える場面があると思います。(例えば、「この事象が発生する確率は0.7327、73.27%です。」など。)この時、確率を言い換えて、X回にY回ですと言いたくありませんか?もしくは、「つまりは、何回中に何回発生するの?」と尋ねられることがあるかと思います。特に、聞き手は具体的にも聞きたいと思っています。

確率の値のみを見て、本記事のタイトルのような「この事象はX回中にY回の確率で発生します。」と言いたい時に、@daikikatsuragawa は頭がこんがらがってしまったことがありました。それゆえ、確率の値を入力値として、分数に変換し出力し、「この事象はX回中にY回の確率で発生します。」と言うことができるようサポートする関数を作成しました。

# 「この事象はX回中にY回の確率で発生します。」

コードは以下のようになりました。

“`python:sample(1)
from decimal import Decimal
from fractions import Fraction

# 確率を分数に変換

元記事を表示

Chalice を使ってみるなかで調べた小ネタ3点

## 1. 静的ファイルを Lambda 関数に含める方法

– シナリオ: 簡単な設定ファイル (YAML, JSONなど) を Lambda 関数内で読み込むファイルとして扱いたい。
– 問題: `app.py` と同じディレクトリに `env.yml` を置いたが、 `chalice deploy` してもファイルがアップロードされなかった
– 解決策: chalice プロジェクトの下に chalicelib というディレクトリを作って、そこにファイルを置く。 以下のtreeの結果を参照。
– 使うときは `filepath = os.path.join(os.path.dirname(__file__), ‘chalicelib’, ‘env.yml’)` などのように読み込ませて解決。
– [公式マニュアルでも同様のことが示されている](https://chalice.readthedocs.io/en/latest/topics/multifile.html)

“`bash
$ tree -a .
.
├── .chalice
│   └── conf

元記事を表示

Twitter API 申請時の失敗と改善方法(API の使い方追加しました)

## (追記)Twitter API の活用・使い方はこちらから
[Tweepyでツイートを取得](https://qiita.com/i_am_miko/items/a2e5168e619ed37afeb9)
[【Python】tweepyを使ってツイートを全取得し、エクセルファイルに落とし込む](https://karupoimou.hatenablog.com/entry/2019/07/04/185418)
[TwitterAPIを用いた会話データ収集](https://qiita.com/gacky01/items/89c6c626848417391438)

[初心者向け!PythonでTwitterに自動ツイートするプログラムを作る方法](https://i-yusuke.com/entry/twitter-bot/)
[Twitterデータを用いたチャットボットの訓練
](https://qiita.com/gacky01/items/b786b2a097bf473176e8)
[【Python】ドナルド・トランプにおけるTwitter民の感情分析](https://n

元記事を表示

Pythonの例外処理

#はじめに
プログラミンを勉強し始めて3カ月ほどたったのでそろそろアウトプットをしていこうと思い
今日からQiitaに記事を書き始めることにしました。

また、自分が今までQiitaの記事に何回もお世話になったのも書こうと思った理由の内の一つです。
初投稿なので温かい目で見て下さい。

今回は、例外処理についてです。(使用する言語はPython)

#目次
1. 例外処理とは

2. Pythonの例外処理
2-1. 基本的な例外処理の書き方 try except
2-2. 例外をキャッチしても処理をスルーするpass
2-3. 例外が発生しなかった場合に処理をするelse
2-4. 例外の発生に関わらずに処理をするfinally

3. おわりに

#1.例外処理とは
まず最初に例外処理とは以下のようなことです。

>例外処理とは、プログラムの実行の継続を妨げる異常な事象(「例外」と呼ばれる)が
発生した際に、その内容に応じて実行される処理のこと。(IT用語辞典から引用)

下記は例外処理の書き方です。(Python)

“`python

try:
# 何らかの

元記事を表示

競プロ的観点からPython3のドキュメントを読む

## はじめに
Python3で競技プログラミングをするときに便利な仕様、標準ライブラリを探るべく、[Python 3.8.2 ドキュメント](https://docs.python.org/ja/3.8/index.html)を読みました。
これはあまり知られてなさそうですねと思ったり、普段他の言語を使っている人が python3 を使いたいときに困りそうですねと思ったものを列挙しました。
**python3.8.2 のドキュメントのまとめなので、python3.8.2 未満では使えない機能が含まれています。実際に競プロに使うときはご注意ください。**

– [引数リストのアンパック](#引数リストのアンパック)
– [ループのテクニック](#ループのテクニック)
– [べき乗演算](#べき乗演算)
– [行列乗算演算](#行列乗算演算)
– [複素数型](#複素数型)
– [オーバーラップする代入文](#オーバーラップする代入文)
– [比較の連鎖](#比較の連鎖)
– [同一性の比較](#同一性の比較)
– [所属検査演算](#所属検査演算)
– [短絡評価](#短絡評価)

元記事を表示

Python&機械学習 勉強メモ③

[①](https://qiita.com/yohiro/items/04984927d0b455700cd1)
[②](https://qiita.com/yohiro/items/5aab5d28aef57ccbb19c)
の続き

#参考教材
[Udemy みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習](https://www.udemy.com/course/learning-ai/)

#課題設定
緯度・経度を与えると、東京・神奈川のどちらに属するかを判定するプログラムを作成する.

#判定方法
入力層2つ・中間層2つ・出力層1つのニューラルネットワークで判定する。

#ニューロンクラス
“`python
class Neuron:
input_sum = 0.0
output = 0.0

def setInput(self, inp):
self.input_sum += inp

def getOutput(self):
self.output = sigmoid(self.input_

元記事を表示

LDAPのことを意識させずに操作できるPYTHON用クラス

# はじめに
pythonでLDAPを操作する方法を3回に分けてまとめてきました。複数人で開発する場合は全員がldap3のライブラリやLDAPのことについて理解する必要がありますが、それには時間と労力がかかります。そこでLDAPはツリー構造のデータであるということだけを知っていれば誰でも使えるようにクラスを作成しました。

# 環境
– python:3.6.5
– ldap3:2.7
– イメージ:osixia/openldap

# メリット
– LDAPのことを意識せずに使える
– ルールを加えられる(dc=xxxの後はouにするなど)
– ぱっと見で分かりやすい

# 今回のクラスを使用した例
まずは、今回のクラスを使用した場合にどのようにLDAPを操作するのかを記載します。使用するときはクラス名を変えるとより分かりやすくなるため、この後の説明で出てくるDomainクラスをAddress、OrganizationをOwner、CommonをPetに変更することでAddress -> Owner -> Petの階層であることが意識できます。

“` main.py

元記事を表示

DPをPythonで(私が時間を溶かした問題のコメント付コード)

解いていてちょくちょくPythonによる解説記事がなく時間を溶かしてしまうDPの問題に出会うので、そうしたことがあり次第ここにコメント付きコードを貼っておきます。参考までに。

なお、基本的にPyPy3でのverifiedです。
## [第11回日本情報オリンピック 予選 D – パスタ(Pasta)](https://atcoder.jp/contests/joi2012yo/tasks/joi2012yo_d)
* 精選100問掲載問題
* どなたかのコードを拝借したのですが忘れてしまいました……。

“`Python
n, k = map(int, input().split())
# i日目にはパスタmenu[i]を食べるべしという制約がある
menu = [0 for _ in range(n + 1)]
for _ in range(k):
d, m = map(int, input().split())
menu[d] = m

# dp[i][j]はi日目にパスタj(1<=j<=3)を食べる通り数 # 求めるべきはsum(dp[n]) dp =

元記事を表示

pandasで東京都感染者数のグラフを書く2

#前回のあらすじ
この記事は、 [pandasで東京都感染者数のグラフを書く](https://qiita.com/1_s_n/items/90144645b6bbc77b04c9) の続きです。前作を読んでない^^;という人は前の記事から読んでもらえるとわかりやすいと思います。

###おさらい
前回は、pandasにて東京都の感染者数と発表日のグラフを書きました。
pythonにはライブラリが豊富でスバラシイと感じていましたが、型が乱立しすぎててんやわんや…。

今回は、pandasとnumpyを使って、日中平均温度と感染者数の相関係数をもとめます。

#まずは、復習
###相関係数とは?
>関係数(そうかんけいすう、英: correlation coefficient)は、2つの確率変数の間にある線形な関係の強弱を測る指標である[1][2]。相関係数は無次元量で、−1以上1以下の実数に値をとる。相関係数が正のとき確率変数には正の相関が、負のとき確率変数には負の相関があるという。また相関係数が0のとき確率変数は無相関であるという[3][4] 。

[出典: フリー百科事典『ウィキペ

元記事を表示

Igniteによるvalidationおよびearly_stoppingの実装【PyTorch勉強記録Day2】

# 0. 本日の内容
・PyTorchフレームワークであるIgniteを用いたvalidationおよびearly_stoppingの実装

# 1. Igniteとは?
PyTorchでは,ニューラルネットワーク訓練における各種演算,すなわち,
・順方向計算
・損失計算
・逆方向計算
・パラメータ更新
を,明示的に記述する必要がある.これらをfor文で回すことにより学習を行う.
これはニューラルネットワークの挙動を学ぶ上では非常に良い反面,実際に活用するとなると記述が煩雑になりやすい.
これをより簡潔に,扱いやすくしてくれるフレームワークがIgniteです.[公式サイト](https://pytorch.org/ignite/).
なお,Igniteの他にもPyTorch用フレームワークはいくつかあります.こちらの記事が非常に分かりやすいです.↓
[PyTorch 三国志(Ignite・Catalyst・Lightning)- fam_taro氏](https://qiita.com/fam_taro/items/c32e0a21cec5704d9a92#2-%E5%90%84%E3

元記事を表示

埼玉県の新型コロナウイルス感染症患者の発生状況の表を作成

Web で閲覧できる次の表を作成します。
>[埼玉県の新型コロナウイルス感染症患者の発生状況](https://ekzemplaro.org/corona/saitama_patient/)
![saitama_corona.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/c4f736b3-729c-c40c-9259-bf3b3ca18289.png)

データのソースは埼玉県です。
>[埼玉県内の新型コロナウイルス感染症の発生状況(2020/03/30 17:30)](https://opendata.pref.saitama.lg.jp/data/dataset/c3a8db28-b943-4fcc-82ec-b7febd460bec/resource/8af433a5-9efd-428f-8713-b04bd2451d1a/download/jokyo20200330.csv)

CSV を JSON へ変換

“`bash
iconv -f sjis -t UTF-8 jokyo

元記事を表示

pythonで素数を探してみた

#はじめに
コロナウイルスの影響で学校が休みになったままでやる事がなかったので素数を見つけ出すプログラムを作りました。
#ソースコード

“`python
Prime_number_list=[]
b=input(“探す範囲を指定してください”)
b=int(b)
for a in range(b):
a=a+1
number=0
for i in range(a):
if a%(i+1)==0:
number+=1
if number==2:
Prime_number_list.append(a)
print(Prime_number_list)

“`

元記事を表示

東京都新型コロナウイルス感染症(COVID-19)対策サイトのオープンデータをGoogle Colabで可視化する

# 概要
[東京都新型コロナウイルス感染症(COVID-19)対策サイト](https://stopcovid19.metro.tokyo.lg.jp/)にて、陽性患者数の日別推移が掲載されています。同時にこのデータは[オープンデータとしてCSVファイルで公開](https://catalog.data.metro.tokyo.lg.jp/dataset/t000010d0000000068)されているため、これを[Google Colab](https://colab.research.google.com/)のノートブック上で読み込み、Seabornで日別・年代別に可視化してみました。

別の切り口から推移を分析する際の土台としても使えるかと思い、ノートブックを公開します。

# ノートブックのリンク
GitHubに置いてあります。
https://github.com/nekodango/tokyo_stopcovid19_opendata

# ノートブックをGoogle Colabで実行する
1. 上記GitHubリンクから「tokyo_opendata_covid19_pa

元記事を表示

[python3] loggingとClickで簡易的にデバッグログ出力機能を実装する

デバッグログを見ながらコードを書いていると、出力のON/OFFを変更するのが面倒になることが多々あります。そこで、コマンドラインからログレベルを変更する小技を紹介します。
※ 本記事は自分で趣味的にコーディングするような場合を想定しています。プロダクトには向かない可能性がありますので、その場合は開発チームの方法に従うことをお勧めします。

## まずは普通のログ設定

### コード例

まず普通に`logging`モジュールを使用し、ログをコンソール出力する場合のコード例を添付します。以下、python3.7を使用しています。

“`logging_test.py
import logging

from logging import DEBUG, INFO

def set_logger():
logger = logging.getLogger(‘logname’)
stream = logging.StreamHandler()
logger.addHandler(stream)

logger.setLevel(INFO)

ret

元記事を表示

iTerm2のカラースキームを時間帯によって自動的に変えよう

ずっと同じカラースキームでターミナルの画面を見ていると飽きるし、日中はライトテーマ・夕方はダークテーマにして気分をリフレッシュしたいと思いませんか? ですが、毎日いちいち手動で朝晩にテーマを切り替えるのは面倒なのでPythonにやらせます。

# Python API
2019年7月にリリースされたiTerm2バージョン3.3.0からPython APIが提供されるようになりました(それ以前はAppleScriptというAPIがあったらしい?)。`pip install iterm2` すればiTerm2外部からもAPIを叩けます。

– [iTerm2 Python API 公式ドキュメント](https://www.iterm2.com/python-api/)

APIを使用するには **Preferences > General > Magic** にある **Enable Python API** にチェックを入れます。
Screen Shot 2020-03-31 at 20.42.58.pngUbuntuでPoetryを使ってみる(インストール編)

これまで Pipenv を好んで使っていましたが、PEP 準拠の `pyproject.toml` で色々まとめて書いてみたいと思ったので、 Poetry に乗り換えてみようと思いました。
その覚書として、インストール編を書いてみました。

## TL;DR

“`treminal
$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
$ poetry completions bash | sudo tee /etc/bash_completion.d/poetry.bash-completion
“`

## バージョン

* OS:Ubuntu 19.10
* python:3.8.0
* Poetry:1.0.5

公式によると、Python のバージョンは 2.7 と 3.4 以上で使えるみたいです。

## インストーラのダウンロード及び実行

通常、Python のパッケージのインストールといえば、 `pip` コマンドを利用すると

元記事を表示

OTHERカテゴリの最新記事