scikit-learnを用いてガウシアンナイーブベイズでアイリスのクラスタリングを行う

import matplotlib.pyplot as plt from sklearn import datasets from sklearn.naive_bayes import GaussianNB データをロード iris = datasets.load_iris() 萼のデータでプロット X = iris.data[:, :2] plt.figure(2, figsize=(8, 6)) plt.scatter(X[:, 0], X[:, 1], c=iris.target, cmap=plt.cm.Set2) plt.show() 学習 model = GaussianNB() model.fit(iris.data, iris.target) テストデータ test_data = np.array([ [5.1, 3.5, 1.4, 0.2], [1, 4, 2, 0.2], [6.7,3.0,5.2,2.3], ]) 分類 test_result = model.predict(test_data) プロッ...

 · 1 min · しむどん三度無視

Pythonで書いたシンプルなAWS Lambda FunctionをTerraformでデプロイする

Pythonで書いたシンプルなスクリプトをTerraformを用いてAWS Lambdaにデプ ロイする方法を示す。 Terraformの設定 AWS Lambdaで用いるP...

 · 4 min · しむどん三度無視

SMTPでメールを送信する

Python PythonにはSMTP用のライブラリが標準で用意されている。 #! /usr/bin/env python import smtplib server = smtplib.SMTP(host="localhost", port=1025) server.set_debuglevel(1) server.sendmail("[email protected]", ["[email protected]"], "OK") server.quit()...

 · 1 min · しむどん三度無視

Pythonの証明書の更新

macOS上でPythonでSSLを用いたアクセスを行おうとすると以下のようなエラーが出力されることがある。 URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)> これはPythonが管理している証...

 · 1 min · しむどん三度無視

poetryをインストールする

poetryはPythonのパッケージの依存関係を管理するためのツール。 https://github.com/python-poetry/poetry 以下はインストールログ。 $ /Applications/Python\ 3.9/Install\ Certificates.command /Applications/Python\ 3.9/Install\ Certificates.command -- pip install --upgrade certifi Collecting certifi Using cached certifi-2020.12.5-py2.py3-none-any.whl (147 kB) Installing collected packages: certifi Successfully installed certifi-2020.12.5 WARNING: You are using pip...

 · 2 min · しむどん三度無視

Kerasのデータをロードする

Kerasのデータをロードする。 keras.models.load_model("/PATH/TO/DATA") モデルのロード時にコンパイルされる。 コンパイルを抑制するためにはcompile引数にFalseを指定する。 keras.models.load_model("/PATH/TO/DATA", compile=False) loadして再学...

 · 1 min · しむどん三度無視

プライベートリポジトリにあるPythonパッケージをインストールする

pip install -r requirements.txt docker build の場合は–sshオプションがありssh-agentから鍵を借用することができる。 docker build --ssh=default ....

 · 1 min · しむどん三度無視

Responderのルーティング処理関連オブジェクト

Responderのルーティング処理はresponder/routes.pyで実装されている。 このモジュールでは以下も関数及びクラスが実装されている。 名前 種類 大...

 · 1 min · しむどん三度無視

responder.routes.compile_path()を読む

Responderのルーティング処理はresponder/routes.pyで実装されており、HTTPの1つ1つのラウト(route)については responde...

 · 2 min · しむどん三度無視

responderのdocumentのtest codeがpytest前提になっている。 pytestは好みではないので使いたくはないが、responderの特にA...

 · 1 min · しむどん三度無視

run-pythonでの補完がサポートされていないときのワーニング

Warning (python): Your ‘python-shell-interpreter’ doesn’t seem to support readline, yet ‘python-shell-completion-native-enable’...

 · 1 min · しむどん三度無視

PynamoDBのMapAttributeの使い方

この記事はPython Advent Calendar 2020の22日目の記事です。 ちょうど空いていたので書こうかなと思います。 DynamoDBを使うライブラリとしてPynamoDBという...

 · 2 min · しむどん三度無視

Pythonのdoctestを実行するflycheckのchecker

Pythonのdoctestを実行するflycheckのcheckerを書いた。 実装 (flycheck-define-checker python-doctest "Python doctest flycheck checker" :command ("python" "-m" "doctest" source-inplace) :modes (python-mode) :enabled (lambda () t) :error-patterns ((error line-start (repeat 70 "\*") "\n" line-start "File " "\"" (file-name) "\", line " line ", in " (+ printing)...

 · 1 min · しむどん三度無視

Djangoのcache機能を使う

Djangoにはキャッシュの機構が用意されている。 from django.core.cache import cache このオブジェクトは caches['default'] と同等のオブジェクト。 このcacheに対して.set()や.get()を呼び出すこ...

 · 1 min · しむどん三度無視

Pythonのunittest.mockで引数から戻り値を切り替えたいときはside_effectに関数オブジェクトを入れる

こんなかんじ。 from unittest import mock class Foo: def foo(self, arg): return True @mock.patch.object(Foo, "foo") def test_it(m_foo): m_foo.side_effect = lambda arg: 1 if arg is True else 2 res = Foo().foo(False) print(res) test_it() 2 side_effectに呼び出し可能オブジェクトを指定して その中で引数を元に分岐さ...

 · 1 min · しむどん三度無視

Pillowで画像の回転/リサイズ/移動をする

サンプル画像 import scipy.misc from PIL import Image im = Image.fromarray(scipy.misc.face()) 画像の表示 import matplotlib.pyplot as plt plt.imshow(im) 回転 im.rotate(1) リサイズ im.resize((int(im.width*0.1), int(im.height*0.1))) 移動 from PIL import ImageChops plt.imshow(ImageChops.offset(im, 20, 20))...

 · 1 min · しむどん三度無視

PythonでGmailのSMTPサーバーを使ってEmailを送信する

import os import smtplib from email.mime.text import MIMEText from email.utils import formatdate from_addr = os.environ["EMAIL_HOST_USER"] to_addr = os.environ["EMAIL_TARGET_EMAIL"] smtpobj = smtplib.SMTP(os.environ["EMAIL_HOST"], int(os.environ["EMAIL_PORT"])) smtpobj.ehlo() smtpobj.starttls() smtpobj.ehlo() smtpobj.login(os.environ["EMAIL_HOST_USER"], os.environ["EMAIL_HOST_PASSWORD"]) msg = MIMEText('body Message') msg['Subject'] = 'subject' msg['From'] = from_addr msg['To'] = to_addr msg['Date'] = formatdate() smtpobj.sendmail(from_addr, to_addr, msg.as_string()) smtpobj.close()...

 · 1 min · しむどん三度無視

URL Encodeされたファイル名をPythonで戻す

#! /usr/bin/env python3 import os import urllib.parse plain_str = input("File name: ") quoted_str = urllib.parse.quote(plain_str) for name in os.listdir(): if name.startswith(quoted_str): new_name = name.replace(quoted_str, plain_str) os.rename(name, new_name)...

 · 1 min · しむどん三度無視

Pelicanのセットアップ

インストール Pelicanをインストールします。venvなどは適時使ってください。今回はenvという名前でvenv環境を作ります。 $ python -m venv env $ source env/bin/bin/activate env環境のp...

 · 4 min · しむどん三度無視