Fire Engine

消防士→ITエンジニア→研究者

IPython Notebook(Jupyter)って何ができるの?

 最近IPythonまたはIPython Notebookという言葉をよく目にします。私も最初はなんじゃそれ?って感じでしたが、これを使い始めてその便利さに感動を覚えました。今回はその感動を共有したいと思います。

 記事を読んで頂くと、IPython Notebookって何?という方や、名前は聞いたことはあるけど結局何がいいの?という方が、IPython Notebookでどんなことができるかが何となくわかるような内容になっていますので、興味のある方は読んでみてください。

*IPython NotebookはPythonのためのNotebookでしたが、現在は、Pythonだけでなく多言語にも対応しているため、Jupyterという名前に変更されています。

IPython Notebookのインストールはこちらから↓

Installing IPython — IPython

私はAnacondaで、Numpy、SciPy、pandas、matplotlibなどのパッケージを一括インストール・管理しています。



目次

IPython Notebookとは?

 IPython NotebookとはPythonをブラウザ上でインタラクティブ(対話的)に実行できるツールです。インタラクティブっていうのはどういうことか、例を見てみましょう。

f:id:hirotsuru314:20160511185246p:plain

 このように、コードを入力すると、即実行され結果が返ってくる、そしてまた新たにコードを入力する、これがインタラクティブということです。データ分析のためのコーディングの多くは、データ探索や試行錯誤の繰り返しからなります。IPythonのインタラクティブという特徴によって、コードを書く→実行する→データ探索というサイクルに乗ってデータ分析を進めることができるため、作業の高速化に強く寄与します。このような特徴からIPythonはPythonによる科学技術計算作業にはなくてはならない存在となりつつあります。

高度な計算が電卓のように使える。

 さきほど、IPythonで四則演算や累乗をやってみましたが、mathパッケージを読み込めば、いろいろな関数を使うことができます。ここでは例として三角関数を呼び出してみます。(例は関数電卓レベルの計算です。)

In [1]: import math
        from math import sin, pi
        sin(pi/2)

Out[2]: 1.0



表示機能が充実。

 セルと呼ばれる入力部分にはコードだけでなくMarkdown記法で記述ができます。また、LaTeX記法によって数式も簡単に挿入できます。

f:id:hirotsuru314:20160511185531p:plain

数式はこのように書いています。

$ \sqrt{a+b} $

$x^2 - 6x + 1 = 0$

$\displaystyle \lim_{x \to \infty} f(x)$



簡単にグラフが書ける。

 Matplotlibと連携していて、グラフを簡単にノートブック上に埋め込むことができます。

import numpy as np
import matplotlib.pyplot as plt
% matplotlib inline

x = np.arange(0, 10, 0.1)
y = np.cos(x)
plt.plot(x,y)

f:id:hirotsuru314:20160511185615p:plain

多くの優れた科学技術計算用ライブラリを使用できる。

 IPythonではNumPy、SciPyといった科学技術計算に優れたライブラリを簡単に使用できます。 以前の記事でもポアソン分布を描く際に、NumPyとSciPyを利用しています。

hirotsuru.hatenablog.com

ノートブックを共有できる。

 作成したノートブックはHTMLやPDF、スライドとして出力可能です。また、Jupyter Notebook Viewerを使えば、GitHub経由で、ノートブックをWeb上で公開、共有できます。以下に手順を示します。

 Jupyter上でノートブックを拡張子「.ipynb」として保存します。

f:id:hirotsuru314:20160511190001p:plain

そしてGitHub Gistに保存したノートブックをドラック&ドロップするだけで、公開・共有ができます。

f:id:hirotsuru314:20160511185935p:plain

私のオススメの使い方

 オススメの使い方は、IPython Notebookを勉強ノートとして活用することです。特に、プログラミングの勉強ノートには最適です。私の利用例として今回の記事の元となった勉強ノートを公開します。

IPython勉強ノート.ipynb · GitHub

 私はもともとPythonRubyの勉強ノートとしてEvernoteKobitoを使っていたのですが、最近Jupyterに乗り換えました。コードと実行結果、メモが同時に一つの画面に残せるのはプログラミングの勉強において、とても便利です。ちなみにRuby用にはIRuby Notebookがあります。

github.com

終わりに

 IPython Notebookが非常に多機能で便利だということが少しは伝わったでしょうか。実際にはまだまだ非常に便利な機能が数多く備わっており、今の私の手には余りすぎる状態です。

 IPython Notebookは、本格的な科学技術計算をする場合だけでなく、Python を初めて利用し、対話形式の環境で楽しく Python を学習する場合にも非常にオススメです。ぜひ使ってみてください!

 下の本には非常に多くのIPythonの活用例がのっているのオススメです!