Jupyter Notebook の使い方

2016年2月13日

はじめに

Jupyter Notebook (旧 IPython Notebook) の使い方についてまとめてみた。

環境

  • Windows 7 64 bit
  • MSYS2 64 bit (MinGW w64)
  • Anaconda for Windows (Python 2.7)

※MinGW にも Python が入っているので、Anaconda のほうを使うようにパスを設定している。

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 コードとして書き出すこともできる。うまくやれば、クヌース先生の「文芸的プログラミング」も可能!?

インストール

Anaconda を入れたら勝手に入っている。

Jupyter Notebook の使い方

起動

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

$ jupyter notebook

ブラウザが起動して、カレントディレクトリのファイルのリストが表示される。

新規作成

[New] から新規 Notebook を作成できる。

"Python 2" を選ぶと、Python 2.x 用の Notebook が開く。

上の "Untitled" をクリックすると、Notebook の名前を設定できる。フロッピーのアイコンをクリックすると保存される。

コードの実行

下にコードを入力できるところがある。試しに何か入れてみて、Shift+Enter を押すと実行される。

上のコードに戻って再実行させることもできる。

下のコードには結果が反映されていない。

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

コードの番号を最初から振りなおしたい場合は、メニュー [Kernel]-[Restart & Run All] を実行すればよい。

matplotlib の結果の埋め込み

"%matplotlib inline" を用いると、matplotlib の結果を Notebook に埋め込むことができる。

セル

コードを実行する部分は「セル」という。セルのタイプとして、以下のものが選べる。

  • Code
  • Markdown
  • Raw NBConverter

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

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

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

"$ ... $" で数式を書くこともできる。

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

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

以下のようにして絵を貼ることもできる。

<img src="fig.png" />

HTML などへの書き出し

メニュー [File]-[Download as] で HTML や Python コードとして保存できる。

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

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

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

PDF にも変換できるようだが、うまくいかなかった。

参考文献