Jupyter Notebook の使い方

2020年11月7日

はじめに

Jupyter Notebook の使い方について。

環境

  • macOS 10.14.6
  • Miniconda3 (Python 3.7)
  • JupyterLab 2.2.9

Jupyter Notebook とは

Jupyter Notebook (旧 IPython Notebook) とは、平たく言えば、Web ブラウザで動く IPython である。ただし、今は Python 以外の言語 (Ruby や Julia など) にも対応している。

コマンドラインベースのインタープリタと異なり、以前に入力したコードに戻って再実行させることができる。文章や図も入れられ、数式もいける。Matplotlib の結果を埋め込むこともできる。

例: 12 steps to Navier-Stokes (CFD Python: 12 steps to Navier-Stokes (Barba group)) - 式もグラフもあって例としてわかりやすい。

他の例は nbviewer で見つけられる。

たとえば、Python でちょこちょこ試行錯誤気味に作業をして、最後に文章にまとめようというときは、改めて文章を書きつつ、コードと結果をインタープリタからコピペしつつ、グラフ表示があればそれを画像にして文章に埋め込みつつ…とやると思うが、Jupyter Notebook だと、コードの試行錯誤作業と文章化を同時に行える。また、出来上がった文章はそのまま再現可能な形式になっている。Notebook 形式だけでなく、HTML や Python コードとして書き出すこともできる。

インストール

JupyterLab をインストールする。専用の仮想環境を作る。

(base)$ conda create -n jupyter python=3.7

JupyterLab と Matplotlib あたりをインストールする。

(base) $ conda activate jupyter
(jupyter) $ conda install -c conda-forge jupyterlab
(jupyter) $ conda install matplotlib

Matplotlib と一緒に NumPy も入る。必要なら SciPy も入れる。

Jupyter Notebook の使い方

起動

適当な作業ディレクトリで以下のように実行する。

$ jupyter lab

ブラウザが起動して、以下のような画面が表示される。

新規作成

[Launcher] タブの "Notebook" にある "Python 3" アイコンをクリックすると、新しいノートブックが開く。

メニューの [File]-[New]-[Notebook] や [File]-[New Launcher]、あるいは左上の [+] ボタンを用いてもよい。

名前の変更

タブを右クリックして出てくるメニューの [Rename Notebook...] で名前を変更できる。

保存

上のセーブボタンを押すなどすればよい。また、自動保存もされる。

既存のノートブックを開く

左側のファイルブラウザからノートブックを選択 (ダブルクリック) すればよい。

セルの操作

選択すると文字を入力できるところがあるが、これをセルという。セルは、入力状態になっていない状態で、キーボードの B や A で追加できる。X で削除 (カット)、C でコピー、V や Shift+V で貼り付けができる。

コードの実行

セルは、デフォルトではコードを入力できるようになっている。試しに何か入れてみて、Shift+Enter で実行される (Ctrl+Enter でもよい。Shift+Enter との違いは、下にセルが追加されるか否かである)。

ここではあえて print() を用いているが、最後に式を書けばその値が出力される。

上のセルに戻って再実行させることもできる。

下のセルは再実行しないかぎり上のセルの結果が反映されない。

すべて再実行するには、メニュー [Run]-[Run All Cells] を選択する。

コードの番号を最初から振りなおしたい場合 (初期化して最初からやりなおしたい場合) は、メニュー [Run]-[Restart Kernel and Run All Cells...] を実行すればよい。

Matplotlib の結果の埋め込み

Matplotlib の結果は Notebook に埋め込まれる。

plt.plot() の最後のセミコロンは返り値を表示させないためのもので、代わりに plt.show() を実行してもよい。

セルのタイプ

セルのタイプとして、以下のものが選べる。

  • Code
  • Markdown
  • Raw

セルのタイプは、セルを選択した状態で、上部のドロップダウンリストで選択できる。"Code" はコードを入力・実行するタイプである。"Markdown" は Markdown 記法 で文章を記述できるタイプである。"Raw" は、ナマのテキストのようである。

たとえば、以下のような Markdown のセルを用意する。ちなみにセルの追加は上部の "+" ボタンでできる。

これらのセルをそれぞれコード同様に "実行" すると、つぎのようになる。

"$ ... $" で文の中に TeX 形式の数式を書くことができる。"$$ ... $$" で独立した行の数式をかける。

$$
f = \sin(x)
$$

また、TeX の数式を直接書くこともできる。

\begin{equation*}
f = \sin(x)
\end{equation*}
\begin{align*}
f =& \sin(x) \\
g =& \cos(x)
\end{align*}

アスタリスク (*) を付けない場合は、HTML で書き出した際などに数式番号が付く。

リンクを貼るには次のように書く。

[PENGUINITIS](http://www.geocities.jp/penguinitis2002/)

HTML も書ける。

<a href="http://www.geocities.jp/penguinitis2002/">PENGUINITIS</a>

絵を貼ることもできる。

<center><img src="fig.png"></center>

HTML などへの書き出し

メニュー [File]-[Export Notebook As...] で HTML やコード (Executable Script) として保存できる。

コマンドで変換することもできる。

$ jupyter nbconvert --to html test.ipynb
$ jupyter nbconvert --to script test.ipynb

コードに変換すると、コード以外の部分はコメントになる。