xiangze's sparse blog

機械学習、ベイズ統計、コンピュータビジョンと関連する数学について

IPython Notebookとnbviewerを使ってみた

IPython Notebookが評判になっているので使ってみました。書いたコードをgithub,gistに上げるとnbviewerできれいに表示してくれるそうなので試してみました。

IPython Notebookとは

Webブラウザ上で対話的にpythonのコードを実行できる環境です。コード、コメント、図を含む出力結果を順番に表示し、計算ノートの様な見た目になります*1
原理的には遠隔地のマシンに処理を行わせることも出来ますが、ここでは手元のマシンでの起動、実行を紹介します。

インストール

MacではAnacondaをインストールしました。
>conda update conda
>conda update ipython
Windowsではpython(x,y)をインストールしましたがipythonだけでも良さそうです。
>pip install ipython
Linuxでは
>sudo apt-get install ipython-notebook
>sudo apt-get install python-matplotlib python-scipy python-pandas python-sympy python-nose
または
>sudo yum install python-ipython-notebook
>sudo yum install python-matplotlib scipy python-pandas sympy python-nose

とするとよいようです。
http://ipython.org/install.html

実行

>ipython notebook
を実行するとブラウザが立ち上がって以下のような画面が出てきます。
f:id:xiangze:20140524023835p:plain
グラフを描画したいときには実行するときにオプションで
>ipython notebook --pylab
とします。


コードの最初に %matplotlib inline と書くといいそうです。
new notebookをクリックすると以下のような画面が出てきます。
f:id:xiangze:20140524023857p:plain
実行の単位となる行を追加していき、それらの行を独立に変更することができます。
最初順番に書いて実行していかなければ行けないと思っていたのですが、これならタイプミスをしても安心です。角行の実行結果はすぐ下に表示されます。
実行時は行ごと、または全行を逐次的に実行することができます。importなど前に実行した行の結果は変数、環境として保存されます。
ショートカットキーを使うと便利です。
既存の.pyファイルもインポートできるそうです。
f:id:xiangze:20140524025713p:plain

notebookの保存

File->Download as
をクリックすると専用の形式.ipynbか通常のpythonスクリプト.py形式で保存することが出来ます。
File->Rename
で名前を変えると良さそうです。

nbviewerを介した公開方法

保存したipynbファイルを
https://gist.github.com/xiangze/bb5c3f183f928091fae1
のようにgithub,gistなどにupload,pushして、

http://nbviewer.ipython.org/gist/xiangze/bb5c3f183f928091fae1
をみるとnbviewerを介してnotebookがみれます。右上にダウンロードボタンがついています。

*1:Rpubsと見た目が似ていますが、こちらはIDEのRstudioで実行、結果を出力し、Rpubsで集中管理する仕組みのようです(参考)。