python

matplotlibのプロットでtype 3 fontを回避

matplotlibはデフォルトでtype 3 font を使っているが、論文原稿にはtype 1 fontを使えと言われることが多い。 type 1 font を使うためにrcに以下の設定を加える記事が見つかるが、xlabel/ylabelが複雑だとうまく行かない。 'ps.useafm': True, 'pdf.use14co…

matplotlibで論文用の図を作成

タイトルの通りの目的のためにmatplotlibの勉強をしたのでメモを残しておく。 次のnotebookのように図ごとに明示的にmatplotlibのrcを指定してプロット用の関数を作るのにとりあえず落ち着いている。 gist.github.com rc plt.rcParamsを直接いじるのは好きで…

PuLPに入門した

pythonからMILPソルバーを触れるPuLPというパッケージを勉強した。 github.com 公式チュートリアルを参考に数独を解いてみた。 ソルバーを呼んだあとにpulp.valueを呼ばないと解を得られないのに若干ハマった。 実装: sudoku.py · GitHub 参考リンク pythonh…

タイムアウトを設定してJoblibで並列処理を実行

pythonで並列処理をするときにはjoblibが手軽で便利だが、タイムアウト時の処理に自由度がない。 というのも、joblib.Parallelの引数にtimeoutを設定すると、指定した時間を超えたときに例外を投げて計算全体を止めてくれるが、タイムアウトした処理を無視し…

pymatgenでのcifファイルの読み込み

pymatgenでcifファイルを読み込むにはpymatgen.io.cif.CifParserを使うが、たまに失敗することがある。 これはcifに書かれているfractional coordinates の精度が低いと、対称操作を施して同じワイコフ位置にある原子の座標を計算する部分がうまくいかないこ…

pythonのコマンドラインオプション

出力をバッファせずにnohup.outに掃き出す nohup python -u hoge.py & python - Nohup is not writing log to output file - Stack Overflow warningsを無視する python -W ignore hoge.py How to disable python warnings - Stack Overflow assertionをスキ…

pythonで独自クラスにsetを使う

pythonで独自クラスに対してsetを使うには、そのクラスがhashableでなければならない。 hashableであるとは、__hash__()メソッドと__eq__()メソッドを持っていることを指す。 組み込み型 — Python 3.7.3 ドキュメント python - How to implement __eq__ for …

scipyの特殊関数

量子力学の教科書を読んでいて、球Bessel関数とかLaguerreの陪多項式がある微分方程式の解だと言われてもいまいちピンと来なかったので適当に実装してmatplotlibでグラフを書いてみようと思っていたところ、scipyに特殊関数のmoduleがあることを知った。Spec…