2020-01-01から1年間の記事一覧

今年に読んだ記事とかだいたい2020

年末だしPocketでクリップした記事の中で面白かったものを見返した。あと今年聴いた曲も振り返った。 invenia.github.io scheme手習いを読んでいてYコンビネータで詰まったので読んだ。 arxiv.org JAXを使った分子動力学法のナウい実装。JAXを使うために粒子…

NGLViewで結晶構造をJupyterLab上で表示する

nglviewを使うとASEのAtoms(とpymatgenのStructure)をjupyterlab上で可視化できるのだが、nglviewはドキュメントが少なくてどうやればユニットセルを表示できるのか謎だった。 pyironで同じことをしようとしているコードをさっき見つけたので、それを参考に…

numbaでscipy.specialの関数をつかう

numbaでscipy.specialの関数を使うには、現状自分で拡張を書く必要がある。 support for scipy.special functions : feature request · Issue #3086 · numba/numba · GitHub ↓のノートブックでは球面調和関数用のAPIを作っている。 球面調和関数の返り値は複…

pymatgenでDOSとCOHPをプロット

さくっとプロットするには便利だがmatplotlib.pyploy.Axesを使ってくれないので細かい調整をするのは難しそう。 細かい調整をしたかったらplt.gcf()からaxesを取得すればいい。 # plotter: DosPlotter plotter.get_plot() fig = plt.gcf() axes = fig.get_ax…

pythonスクリプト内からcommit hashを取得する

自作のパッケージを使っているとバージョニングが疎かになりがちなので、gitのcommit hashをパッケージのAPIから取得したい。 いめーじとしては、pandasのpandas.show_versionsみたいな感じ。 pandas.pydata.org ↓のポストだとgit rev-parse HEADかgit descr…

numpy.einsumはそこそこ速い

np.einsumは配列の次元が大きくなるとnp.dotとかnp.tensordotよりかなり遅くなるような気がしていた。 しかし、公式ドキュメントによるとoptimizeフラグをgreedyかoptimalにすればかなり速くなるようだ。 numpy.org 実際に以下のnotebookで試すと、optimize…

git protocolがタイムアウトする

forkしてきたレポジトリのpre-commitを走らせようとすると以下のようなエラーでてタイムアウトした。 $ pre-commit run [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. [INFO] Initializing environment for git://g…

latexdiff-vc を使おうとしてハマった

REVTeXを使って書いていた原稿のdiffをlatexdiff-vcで取ろうとするとMissing characters near word 7714 character index: 101222-101224 Length: 1 Match: |1| (expected match marked above). みたいなエラーが出て上手く行かない。 調べると(原因も理由も…

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を直接いじるのは好きで…