ロゴ
FV画像 FV画像

BACKSTAGE

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(***) を使ってそれぞれ設定出来ます.以下は各ラベルやタイトルを設定してみた例です.

文字化けしてしまっている例

日本語で書いたタイトルが文字化けしてしまっています.
実験レポート例で示したようにグラフの中で日本語を使うためには,別途 matplotlib で日本語フォントを設定する必要があります.ここでは簡単に日本語フォントの設定手順を紹介します.

まずは自分の環境で利用できる日本語フォントを調べてみましょう.利用できるフォントのリストは,Jupyter Notebook上で簡単に確認することができます.以下のコマンドを実行して下さい.

import matplotlib.font_manager as fm
fm.findSystemFonts()

リストの中から日本語フォントを探しましょう.ここでは /Library/Fonts/Osaka.ttf というフォントを利用することにします.matplotlib.pyplotをインポートして,使用するフォントの名前を設定しましょう.

import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Osaka'

先ほど文字化けしたグラフを再度実行すると,正しく日本語を表示できていることが確認できるかと思います!

日本語フォントをデフォルトで利用するよう設定することも出来ます.
自分のホームディレクトリ以下に .matpltolib というディレクトリを作成し,その下に matplotlibrc という名前のファイルを作成します.(~/.matplotlib/matplotlibrc)ファイルを作成したら,作成した matplotlibrc ファイル内に利用するフォントを記入します.

font.family: Osaka

ここまで出来たところで,Jupyter Notebookを再起動してみましょう.日本語を利用したグラフも文字化けせず正しく表示することが出来るかと思います.

ここまで紹介した手法を利用すると,一番最初の実験レポート例で示したレポートを記述することが出来ます.
お疲れ様でした!

R + Jupyter Notebook環境を導入する

ここまでの説明だと全体的にPython色が強く,様々な言語を扱えるというJupyter Notebookの特色を一部しか体験出来ていません.そこで,最後にR言語をJupyter Notebook上で動かす方法について紹介します.
※本家のページはこちら:R kernel for Jupyter ※事前にRの環境が構築されていることを前提としています.R言語の環境が無い方はこちらのページを確認してセットアップを行って下さい.

まず,Rを開いて以下のコードを実行して下さい.

install.packages(c('rzmq','repr','IRkernel','IRdisplay'), repos = c('http://irkernel.github.io/', getOption('repos')))

※上記を実行してrzmq.soのエラーが発生する方は,zmqを入れ直す必要があります.本家のページにOS別で詳しい導入方法がまとめられていますので,詳細はこちらのページのSOURCEタブををご確認ください:IRkernel – Installation

必要なパッケージが導入できたら,コマンドラインからRを開いて以下を実行することでJupyter NotebookにRが追加されます.

IRkernel::installspec()

Jupyter Notebookを再起動して,Notebooksの機能にRが追加されたかどうか確認してみましょう.IRkernelが正しく導入されていた場合,以下の通り表示されます.

Rの機能を追加した例

Jupyter Notebookを利用してR言語にHello, world!することが出来ました!