Jupyter Notebookを利用してお手軽分析環境構築

突然ですが,みなさま普段データ分析を行う際にどのような分析環境(ツール)を利用していますか?Excel?RStudio (R)?Spyder (Python)?「特にそういった分析環境を利用していません」という方もいらっしゃるかもしれません.

この記事では,数ある分析環境の中でも人気急上昇中(※当社比)のJupyter Notebookに注目し,Jupyter Notebookを利用したお手軽な分析環境構築について紹介します.

Jupyter Notebookとは?

Jupyter Notebookとは,ブラウザ上でインタラクティブにデータ分析が行える環境です.
※最近では分析用途だけに留まらず便利なメモ帳としてJupyter Notebookを利用する例も増えているようです.参考:現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ
オープンソースで開発が進められており,誰でも無料でインストールして利用することが出来ます.(インストールせずにちょっと試してみたいという方は,「Try Jupyter」を利用することも出来ます.もちろん無料です.)
プロジェクトのページはこちらになります:Project Jupyter | Home

百聞は一見にしかずということで,実際の使用例を見てみましょう.以下はJupyter Notebook上に一つのノートブックを作ってみた例です.

Jupyter Notebookの使用例

ご覧の通り,Jupyter Notebookを利用することで,実験用のプログラムを書いて結果を確認してレポートにまとめる・・・といった一連の流れを1つのノートブック上で完結させることが出来ます.まるで紙のノートブックに実験レポートをまとめているかのようですね!
上記の例ではプログラミング言語にPythonを用いていますが,Jupyter Notebook自体は40種類以上のプログラミング言語をサポートしています.RやJuliaといった分析用言語はもちろん,中にはRubyやHaskell,Scala (with Spark) なども含まれています.Jupyter Notebookがサポートする言語が気になる!という方は以下のサイトをご参照下さい.
IPython kernels for other languages | Github

Jupyter Notebook環境の構築

早速自分のPCにJupyter Notebook環境を構築して試してみましょう!
Jupyter Notebookの公式インストールマニュアルでは,Anacondaのインストールが推奨されています.Anacondaとは,分析用のライブラリが多数内包された無料のPythonディストリビューションです.Jupyter NotebookがPythonで動いているため,動作させるためにまずPythonをインストールする必要があるのですが,Anacondaをインストールすれば面倒な手順を必要とせずすぐさまJupyter Notebookを利用することが出来ます.
Anacondaをインストールしたいという方は,以下のリンクからご自分の環境にあったAnaconda Installerをダウンロードして下さい.(Anacondaには,Windows / OS X / Linuxそれぞれのインストーラーが用意されています.) Download Anaconda now! | Continuum – Continuum Analytics

もうすでにPython環境がPCにあるためAnacondaは利用したくないという方は,pipを利用してJupyter Notebook環境を構築することもできます.

$ pip install jupyter

※Pythonを使って例に示したようなグラフを描画するには,別途 matplotlib というライブラリが必要です.Anacondaをインストールされた方の環境にはもうすでにそのライブラリも導入されています.

Python + Jupyter Notebook環境を試す

※以下の説明の中で,pandasmatplotlib を利用します.Anacondaを利用していない方は別途 pip で導入する必要があります.

AnacondaをインストールするなどしてJupyter Notebookを利用する準備ができたら,シェル環境から以下のコマンドを入力することでJupyter Notebook環境が起動します.(Windowsの方はコマンドプロンプト環境から入力して下さい)

$ jupyter notebook

無事に起動が行われた場合は自動的にブラウザが立ち上がって,Jupyter Notebookの画面が表示されるはずです.Jupyter Notebookは起動コマンドを入力した際にいたディレクトリをルートとして認識して,そのディレクトリ以下にノートブックを作成します.
特定のフォルダ以下にノートブックを保存したい場合は,シェル環境にてそのフォルダのある場所まで移動し,再度起動コマンドを入力して環境を起動しなおして下さい.

早速ノートブックを作成してみましょう!
以下の図で示される様に,New -> Python 3と選択してPythonのノートブックを作成します.(Python 2系でJupyter Notebook環境を構築された方は,Notebooksのところの表示がPython 2となっているはずです)

スタートアップ時の画面

ノートブックは以下のような画面構成になっています.
ドキュメントやコードは左側に ln []: と書かれたセルの中に記述していきます.Pythonのコードを書いたりMarkdownを書いたりといったモードの切替を行いたい場合には,真ん中付近に表示されている Code というボタンを利用します.

ノートブックの画面構成

新しくセルを追加したい場合には,メニューから Insert -> Insert Cell Above (Below) とするとセルの追加が出来ます.

セルを編集して実行したい場合は,実行したいセルを選択した上でShift+Enterキーを押します.早速実行してみましょう.Pythonコードのセルを実行した場合にはその実行結果が,Markdownのセルを実行した場合にはそのレンダリング結果が確認出来るはずです.

ここまでが基本的なJupyter Notebookの使い方です.

Python + Jupyter Notebookでグラフを描く

折角なので,Python + Jupyter Notebookを使ってグラフを描く方法についても触れておきます.
Pythonでグラフを描く際には,matplotlib というライブラリを使うのが一般的です.以下はシンプルな線グラフを描く例です.

import matplotlib.pyplot as plt

x = [1, 2, 3]
y = [2, 4, 6]
plt.plot(x, y)

matplotlib の基本的な使い方の説明はその他のサイトに譲るとして,ここではJupyter Notebook上で matplotlib を利用する(あるいはmatplotlib 自体を便利に使う)際のいくつかのTipsについて紹介します.

matplotlib 上にグラフを埋め込む

上記にあげたコードをそのままJupyter Notebook上で実行してみると,以下のような出力結果が得られます.

グラフがうまく表示されない例

グラフがうまく表示されていませんね.実は,Jupyter Notebookはデフォルトではノートブック上にグラフを埋め込んで表示してくれません.グラフを埋め込んで表示したい場合には,Jupyter Notebook上で以下の宣言を実行する必要があります.

%matplotlib inline

上記を実行後に再度グラフを表示するコマンドを実行すると,グラフが正しく表示されることが確認できるはずです.

matplotlib のグラフスタイルを変更する

matplotlib のグラフスタイルはデフォルトのままではかなりいけてないです.普段からR言語を利用されている方だとかなり残念な気持ちになったかと思います.

かなりイケていないグラフスタイルの例

ですが安心して下さい.matplotlib のグラフスタイルは簡単に変更することが出来ます.matplotlib のグラフスタイルを変更するには,plt.style.use(利用したいスタイル名) を利用します.利用できるスタイルは,plt.style.available コマンドで確認出来ます.個人的におすすめなのは,以下に示す ggplot スタイルです.

イケてるスタイルの例

matplotlib のグラフで日本語を使う

※以下の内容はWindowsで未検証です

グラフが描画できたところでタイトルやラベルも設定してみましょう.
plt.xlabel(***)plt.ylabel(***)plt.title(***) を使ってそれぞれ設定出来ます.以下は各ラベルやタイトルを設定してみた例です.