opencvはフリーの画像処理ライブラリで使い勝手がよいのですが、画像ファイルを読み込むimreadとimwriteは注意が必要です。 pathlibに対応していない pathlibはファイルのディレクトリやパスをオブジェクト指向的に扱うことの出来る標準のバッケージで、pyth…

Optunaの目的関数に引数を渡す方法

optunaは最適な機械学習のハイパーパラメータを探索するツールです。 以下はよくあるoptunaのサンプルです。 import optuna # 目的関数 def objective(trial): x = trial.suggest_uniform('x', -10, 10) return (x - 2) ** 2 study = optuna.create_study() …

Pythonプログラムの高速化(lru_cache)

時間のかかる計算の回数を少なくするために、その計算結果を何度も再利用したいことがあります。 そういう場合、辞書等に一時的に格納する方法が思いつきますが、実装してみるとコードが読みにくく保守性が悪いです。 このような場合、lru_cacheというデコレ…

Python Dict型の便利な使い方

Python には dict というkey: valueの組を保持する基本型があります。 これを使っていると、コード量が増え面倒だと思う場面が多々あります。 Pythonにはコーディングを楽にする仕組みがあるので紹介します。 get()メソッド getはdict型のメソッドです。 dic…

python tkinter Listboxの使い方

pythonのドキュメントにtkinterのListboxの説明がないので、このエントリーにまとめておきます。 tkinter --- Tcl/Tk の Python インタフェース — Python 3.7.8 ドキュメント コンストラクタ import tkinter as tk tk.Listbox(master, **option) 引数 説明 e…