IPython Notebookに「ちゃんと」入門する

IPython Notebookは便利だけれど、
その直感さから「なんとなく」使っている人も多いのでは?

そこで、それを脱するため、初心者向け入門記事を書きました。

わっつIPython Notebook?

IPython NotebookはPythonのエディタ。
ブラウザ上にコードを書いて、その結果を出力する環境を提供してくれる。
Pythonのデフォルトの対話型と異なり、
Markdownやコードを書き、出力を残しておけるノートツールです。

その強力さから、
Pythonのデータ分析環境の紹介では大抵紹介されています。

導入と起動

pipが入っていれば、

pip install notebook

で入る。(sudoが必要ならsudoを)

Anacondaを使っていれば、
デフォルトで入っているはず。

起動は、コマンドラインから

ipython notebook

で起動する。
起動したところをrootとしてブラウザが立ち上がるので、
cdでノートを作りたいところに移動しておいたほうが良いかも?

f:id:esu-ko:20160222190448p:plain

画面が開いたら、ブラウザの右側から新規ノートを作成できる。
作成されるノートの拡張子はipynb(ipython notebook)になります。

ノートの基本

IPyhonのノートは一般的なエディタと違い、
「セル」と呼ばれる単位で区切られる。
f:id:esu-ko:20160222190541p:plain セルはMacならoption + enterで現在のセルに追加可能。
もちろん、上のツールバーからも追加可能。

ツールバーの矢印を押すと、
セルの位置を移動できます。

このセルは属性を持っていて、
ツールバーから変えることができます。

属性は

  • Code
  • Markdown

しか使ってません。

Codeは言葉の通り、 プログラミングを記述できるセルです。
実行を押すと、セル下に実行結果が出力されます。

MarkdownはMarkdownで文章を書くセル。
これは実行を押すと、装飾された状態になります。
(ちなみにHTMLも書けるのでYoutube、タグなんかも埋め込める)
時々、画像埋め込みにimgタグを推奨する人がいるけれど、
![画像のタイトル:任意](画像のURL)
というMarkdownでも埋め込めます。

ショートカットキー

ツールを使い始めたら、とりあえずショートカットキーを覚えるのが鉄則。

  • Ctrl or Shift + EnterでコードやMarkdownの実行
  • jで下のセルに選択を移動
  • kで上セル
  • Option + enterで新しいセルの追加。
  • コードブロックだとtabで入力補完をしてくれる

出力機能

ノートはファイルで保存されるので、
そのファイルをそのまま共有すれば、
実行可能な、メモ付きコードの受け渡しが可能です。

さらに、ノートはHTMLやPDF、スライドとして出力可能です。

スライドを作る場合はツールバーの右端をクリックして、
Slideshowをクリックします。
そうするとセルの右側にスライドタイプが出るので、
各セルのタイプを決めます。

f:id:esu-ko:20160222190628p:plain

Sildesはメインスライド
Subsilidesはその下にぶら下がるスライドになります。
FragmentsはSlidesやSubslidesと一緒に表示される要素になります。

スライドとして出力するには、
コマンドライン

ipython nbconvert 対象ファイル.ipynb --to slides --post serve

と実行すると
reveal.jsでスライド表示するHTMLを作成し、
ブラウザで表示してくれます。

f:id:esu-ko:20160222190652p:plain

拡張性

基本的な使い方はこれでおしまい、
なんだけれど、
IPython Notebookは拡張性も高い!

まず、IPython Notebookで作成されるNotebookファイルは
実はJsonファイルになってる。

当然、PythonJsonモジュールで読み込めるし、
JsonファイルやMongoDB、TinyDBといった辞書型を格納するDBで永続化できる。
未使用ですが、MongoNotebookMangerというMongoで管理するためのモジュールもあるようです。

また、IPythonの表示等もCSSなどから触ったり、
拡張機能もあるので、結構自分向けにカスタマイズすることができる。
慣れてきたら、自分向けにマニアックに改造するのもありかもしれません。

これで入門は完了です!
というわけで、IPython Notebookを楽しんください!