機械学習関連をしていると、数式をコードで表現するときがありますが、逆にコードで書いたものを人に説明するためや、自分で後で見直したいとき用に、数式を描画したいときがあります。Jupyter Notebookを使っている場合は、通常、TeX/Latex書式で書くのではないかと思います。
1つぐらいであればTeXコマンド文を手書きした方が速いと思いますが、大量にある場合、「コードから数式を表示できないの?」って思う人も多いかもしれません。そんなことができるライブラリを見つけたので紹介します。
上記の「handcalcs」というPythonライブラリです。注意点としては、Python 3.7以上である必要があります。Colabだと2020/09/03時点でバージョン3.6なので使えなかったです。Kaggle Notebook(Python 3.7.6)を使って、以下の内容を試しました。
インストール方法
PyPIパッケージなのでpip
でインストールできます。
!pip install handcalcs # Collecting handcalcs # Downloading handcalcs-0.8.1-py3-none-any.whl (24 kB) # Requirement already satisfied: pyparsing<3.0.0,>=2.4.7 in /opt/conda/lib/python3.7/site-packages (from handcalcs) (2.4.7) # Installing collected packages: handcalcs # Successfully installed handcalcs-0.8.1
handcalcsレンダラーのインポート
import handcalcs.render
Python計算コードのレンダリング
あとは%%render
セルマジックで記述するだけです。
%%render a = 2 b = 3 c = 2*a + b/3
これをJupyter Notebook上で実行すると次のようにレンダリングされます。
MathJaxでレンダリングされているので、右クリックメニューからTeXコマンド文を取得できます。
数式だけでなく、その計算結果までレンダリングされているのもポイントです。
TeX初心者であればかなり参考になるのではないでしょうか。
レンダリング例2
直接にTeXコマンド文を取得
%%tex
セルマジックを使えばレンダリングではなくTeXコマンド文が出力されます。
この他にもいろいろと機能があるので、公式GitHubページをご確認ください。