iPython notebookを使おうかと思ったけどやめた話(最近むちゃくちゃ使ってるのでこれは嘘)

概要

iPython notebookというPythonコードと数式、グラフなどを統合的に扱えるものを知ったので、 使ってみたけど、Emacsからは微妙だったので使うのやめようかなと思ってる。 あくまでも小一時時間さわってみた感想なので、もう少し使っていれば別の感想になると思う。 タスクごとにエディタを変えることに抵抗が少ない人にはおすすめ。

iPython

iPythonはPythonの対話型インタプリタの拡張。 普通のPythonの対話型インタプリタbashとするなら、iPythonはzshみたいな感じ。 変数名、オブジェクトのメソッド名など、タブで色々補完してくれるので、便利。 他にもシェルのコマンドが使えたり、実行時間が簡単に測れたり色々ある。 こちら が詳しい。

(え、対話型インタプリタって使うの?って正直思ってるんですが、みんな使ってるんですか?)

iPython notebook

iPython notebookではPythonMarkdown、普通のテキストを書くことができる。 これらはそれぞれ、セルごとにどれを使って記述するか指定することができる。 詳しくはこちら を参考。

実際に使ってみたときの画像を以下に示す。 f:id:ksknw:20151010195152p:plain

Markdownで数式を書いて、その下にPythonのコード、さらに結果のグラフを一つのファイルの中で完結させることができている。

また、画面上にツールバーがあり、記述したPythonのコードをその場で実行し、結果をすぐ下に表示させることができる。

今まで、パラメータを変更した際の結果を管理する方法として、ファイル名やフォルダ名にパラメータを記述するという手段をとっていた。 iPython notebookを使うことで、Markdownでパラメータ(値だけでなく式でもいい)を記述し、グラフを管理することができるかもしれない。

Emacsから使う

確かに一つのファイルの中で、Python、その出力結果、Markdownを管理できるのは魅力的な機能である。 一方で、その機能を使うために、別のエディタ(しかもブラウザ上で動作する)を使うというのは、 Emacs教徒である僕には我慢ならない。 ということで、EmacsからiPython notebookを使う。

EmacsにおけるiPython notebookはein(Emacs iPython notebook)から利用できる。 こちら を参考にした。

実際に使ってみた画像は以下。 f:id:ksknw:20151010194432p:plain

Markdownの数式が表示させることができなかった。

結局使うのをやめた理由

以下の理由から、真面目に使うのはもうちょっと後かなぁと思っている。 とはいえ、数式とプログラムと実行結果を一つにまとめられるというのはとても魅力的なので、 そのうち、もう一度トライしてみようと思う。

また、自分の結果をまとめるというよりは、教育や知識の共有に向いているような印象を持った。 理論的な部分の説明から実際のコードの実装、結果を見ることができて、なおかつ、自分でコードを色々いじって結果をすぐに見れるというのは、理解を助けてくれると思う。

Emacsから扱うためのモード"ein"が使いにくい

einはまだ開発途中なのか、動作が不安定な場面が多い気がした。 また、普段Emacspythonを使うときはautopep8やwhite spaceでコードの体裁を整えている。 これらの機能が正常に動いてくれなかったので、コードがぐちゃぐちゃになってしまった。 演算子の両側のスペースとか手動で打つ気にはまったくならない。 設定をいじればどうにかなるのかもしれない。

そもそもMarkdown書けなかった

実はMarkdown書けなかった。 できればorg-modeの中にコードと実行結果を埋めこみたい。

追記(2016/4/23)

Markdown書けるようになったので最近むっちゃ使ってる。 einは今のところ使っていない。

参考

IPythonの使い方

はじめるiPython notebook

EmacsでiPython notebookを使う(EIN / Emacs iPython notebook)