JupyterNotebookでipynbを超かんたんにimport

2020/01/10

Python

t f B! P L

Jupyter Notebook as module

公式の方法がこちら。
https://jupyter-notebook.readthedocs.io/en/stable/examples/Notebook/Importing%20Notebooks.html
でもやや長いです。

magic commandの%runを使う

A.ipynbからB.ipynbをモジュールとしてimportしたいとします。
そんなときは、%runが便利です。
A.ipynbのセルで以下を実行すると、B.ipynbで定義された変数やクラスが、A.ipynbの名前空間にロードされます。

%run ./B.ipynb

以下にあるように変数の中身が更新されるため、同名の変数は上書きされます。
after execution, the IPython interactive namespace gets updated with all variables defined in the program

B側のセルがすべて実行される形で、変数などがメモリにロードされる仕様のため、セルに重い処理を直書きしていると、その処理が終了するまで読み込みが終わりません。

B側はクラスで定義して、変数や関数はその中に入れておくのが良さそうです。

QooQ