Jupyter Notebookとは
Jupyter Notebookはプログラムコードや数式、図、説明文などを含む文書を作成し、共有することが出来るWebアプリケーションです。
以下の様な特徴が公式サイトで挙げられています。
- PythonやR、Scalaなど40以上のプログラミング言語をサポート
- 作成したノートブックはemailやDropbox、GitHub、Jupyter Notebook Viewerで共有することが出来る。
- ノートブックはipynbという拡張子でjson形式に保存されるが、htmlやpdfなど他の形式に変換が可能
- 入力されたコードはインタラクティブに処理され、画像やビデオ、LaTeXやJavaScriptなどとして出力が可能
他にも
- 説明文としてMarkdownを使用する事ができる
- $$で囲うとLaTeXのコマンドが認識されて使用可能(基本的に数式しか対応していないはず)
といったところが気に入っています。
基本的にはローカルなサーバを立てて、個人で利用する用途向けですが、Jupyterhubというのを利用すればマルチユーザ環境でも使用することができます。
他にもいくつかのサブプロジェクトがオフィシャルにサポートされているので、気になる場合は以下を参照してみると良いと思います。
カーネル
Jupyterにおいてカーネルとは入力されたコードをインタラクティブに処理して結果を返却するプロセスのことを指します。
Pythonの処理を実行するカーネルはIPythonが利用されますが、その他の言語を処理したい場合には、その言語のカーネルを別途インストールする必要があります。
勉強したいプログラミングをインストールするとよいかもしれません。
使用できるカーネルは以下を参照ください。
Kobitoとの違い
大きな違いはコードをインタラクティブに処理できる部分だと思います。
そのため、試しに動かしたコードをちょっと修正して、Markdownで説明を書いて保存するとそのままドキュメントとして形になるので便利です。
Jupyter Notebook Viewerを見ると参考になると思います。
Jupyterのインストール
環境
- Mac OS Yosemite 10.10.5
インストール
インストール方法は以下に詳しく書いてます。
私はPython2系でインストールしたのでpipを使用しましたが、pip3を利用すればPython3系でインストールされるはずです。
pip install jupyter
起動
jupyter notebookで起動できます。
このまま実行すると、実行したディレクトリをノートブックのホームとして使用するので、ノートブック用のディレクトリを作成、移動してから実行するほうがよいかもしれません。
jupyter notebook
コマンドオプションは以下で確認です。
jupyter notebook --help
# or
jupyter notebook --help-all
Python3のカーネル追加
pipでインストールすると使用できるカーネルはPython2のみでPython3ははじめから利用できません。
以下を実行してPython3のカーネルも使用できるようにします。
python3 -m IPython kernelspec install-self
実行すると/usr/local/share/jupyter/kernels
にPython3のカーネルが追加されます。
pip3でインストールしてPython2を利用したい場合は以下となります。
python2 -m IPython kernelspec install-self
Jupyterで使用できるMarkdown
以下を参照してください。
大抵の表記は利用できますし、プログラミング言語のシンタックスハイライトも可能です。
Jupyterの設定
Jupyterの設定ファイルはデフォルトで~/.jupyter
に入れられます。
まずは、以下のコマンドを実行してコンフィグファイルの作成を行います。実行するとjupyter_application_config.py
と言うファイルが~/.jupyter
に作成されます。
jupyter notebook --generate-config
作成されたファイルを開くと、コメントアウトされた設定が並んでいます。内容を確認して、必要な設定を有効にしましょう。
設定を全て確認してはいませんが、とりあえず以下を設定しています。
# The port the notebook server will listen on.
c.NotebookApp.port = 8080
# The directory to use for notebooks and kernels.
c.NotebookApp.notebook_dir = u'/Path/to/notebooks/'
notebook_dirはJupyterのノートブックのホームとなるディレクトリの設定です。
デフォルトではJupyterを実行したディレクトリがホームとなりますが、いつも特定のディレクトリをノートブック置き場としたかったので設定しています。
LaTeXコマンドの実行
数式などの一部のLaTeXコマンドは$$で囲むことで実行することができます。
$$
\begin{align}
\sum_{k=1}^{\infty} \frac{1}{k^2} = \frac{\pi^2}{6}
\end{align}
$$
といった感じです。
こちらに簡単な例を用意したので確認してみてください。
newcommandなども使用できるようです。
GitHubを利用したノートブックの共有と閲覧
作成したノートブックをGitHubのレポジトリとして管理すると、GitHubのページからもノートブックがエンコードされて閲覧することができるほか、Jupyter Notebook Viewerからも閲覧できます。
私の場合はノートブックのディレクトリとして設定したディレクトリをそのままGitHubにpushしていつでも、どこでもノートブックを閲覧できるようにしています。
.ipynb_checkpointsというのが各所にできるので、gitignoreで無視するようにしています。