あれもPython,これもPython

Pythonで世界を包みたい

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を楽しんください!