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 で使いこなせるようにしてみたいと思います。
参考 サイト
- Project Jupyter | Home
- jupyter Notebookの紹介 - Qiita
- Jupyter Notebook を使ってみよう – Python でデータサイエンス
- Jupyter Notebook Plotting
にほんブログ村
0 件のコメント:
コメントを投稿