2019-04-16

Jupyter Notebook を使ってみる

Jupyter Notebook とは、開発元の Project Jupyter のサイト [1] によると、オープンソースの Web アプリケーションで、ライブコーディング†1、方程式、視覚化および説明文を含む文書を作成および共有でき、主な用途にデータクレンジングと変換、数値シミュレーション、統計モデリング、データの視覚化、機械学習などがあると説明されています。

†1 プログラムをリアルタイムに実行しながら、その場で即興的に生成していくこと

Python の開発環境を物色している時に、参考サイト [2] で紹介されているのを読んで、興味を持ったので試してみました。

使用環境

使用環境は Fedora 30 (x86_64) のβ版です。python3 や GCC などの開発環境は既にインストールされています。

インストール

端末エミュレータを起動して、pip で Jupyter Notebook をインストールしようとしましたが、アクセス権の問題でインストールできなかったので --user オプションを加えてインストールしました。

$ python3 -m pip install jupyter
Collecting jupyter
  Downloading https://files.pythonhosted.org/packages/83/df/0f5dd132200728a86190397e1ea87cd76244e42d39ec5e88efd25b2abd7e/jupyter-1.0.0-py2.py3-none-any.whl
...
...
...
Requirement already satisfied: ptyprocess; os_name != "nt" in /usr/lib/python3.7/site-packages (from terminado>=0.8.1->notebook->jupyter) (0.6.0)
Installing collected packages: qtconsole, widgetsnbextension, ipywidgets, jupyter-console, jupyter
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/local/lib/python3.7'
Consider using the `--user` option or check the permissions.

$ python3 -m pip install jupyter --user
Collecting jupyter
  Using cached https://files.pythonhosted.org/packages/83/df/0f5dd132200728a86190397e1ea87cd76244e42d39ec5e88efd25b2abd7e/jupyter-1.0.0-py2.py3-none-any.whl
...
...
...
Installing collected packages: widgetsnbextension, ipywidgets, jupyter-console, qtconsole, jupyter
Successfully installed ipywidgets-7.4.2 jupyter-1.0.0 jupyter-console-6.0.0 qtconsole-4.4.3 widgetsnbextension-3.4.2

起動

Jupyter Notebook の起動は次のようにタイプします。

$ jupyter notebook
[I 10:50:21.429 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret
[I 10:50:21.714 NotebookApp] Serving notebooks from local directory: /home/bitwalk
[I 10:50:21.714 NotebookApp] The Jupyter Notebook is running at:
[I 10:50:21.714 NotebookApp] http://localhost:8888/?token=0bf3801ea8efd3c2dff54604fe9578da79e619a13adf357c
[I 10:50:21.714 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 10:50:21.738 NotebookApp] 
    
    To access the notebook, open this file in a browser:
        file:///run/user/1000/jupyter/nbserver-10004-open.html
    Or copy and paste one of these URLs:
        http://localhost:8888/?token=0bf3801ea8efd3c2dff54604fe9578da79e619a13adf357c
[I 10:51:00.259 NotebookApp] 302 GET /?token=0bf3801ea8efd3c2dff54604fe9578da79e619a13adf357c (::1) 0.88ms

するとブラウザ(この例では Google Chrome)が起動して、次のようにログインしているアカウント内のフォルダーが表示されます。

サンプルを実行してみる

これから作成する notebook ファイルを保存するディレクトリへ移動して、画面右上の「New」をクリックし、使用言語 Python 3 を選択し notebook を作成します。

すると以下のように、セルと呼ばれるスペースができ、 Python のコードを入力し実行することができます。

セルで Python のコードを実行あるいは編集するには下記のようにします。(参考サイト [3]

  • Ctrl + Enter でセル内のプログラムを実行
  • Shift + Enter でセルを下に追加
  • セルをダブルクリックすることでセルを再度編集可能にする

参考サイト [4] からサンプルをひとつ実行してみました。(下記)

from matplotlib import pyplot as plt
import numpy as np
import math
%matplotlib inline

x = np.arange(0, math.pi * 2, 0.05)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1])
ax.plot(x, y)
ax.set_title("sine wave")
ax.set_xlabel("angle")
ax.set_ylabel("sine")

セル内に上記コードをコピーして Ctrl + Enter で実行した例を下記に示しました。

先頭に、%matplotlib inline という行を記載することで Matplotlib で出力したグラフをノートブック内に表示させることが可能になります。

まとめ

最近は機械学習をするのに R を使ってばかりいます。R に不満があるわけではないのですが、Python でも同じことをしてパフォーマンスを比較したいと常に思っています。いままで Python のコーディングは Eclipse を使っていましたが Jupyter Notebook を少し使ってみて、まだ良いとか悪いとか判断できないものの、他の IDE との違いに衝撃を受けました。

Jupyter Notebook は Python だけでなく他の言語にも対応しているということですが、まずは Python で使いこなせるようにしてみたいと思います。

参考 サイト

  1. Project Jupyter | Home
  2. jupyter Notebookの紹介 - Qiita
  3. Jupyter Notebook を使ってみよう – Python でデータサイエンス
  4. Jupyter Notebook Plotting

 

ブログランキング・にほんブログ村へにほんブログ村

0 件のコメント: