以前の投稿「Pythonの始め方③ プログラムってどこに書くの?Pythonの記述場所と実行方法」の中で、jupyter notebookというものがあることは紹介しました。
今回は、jupyter notebookを使ってプログラムを記述する方法を書いていきたいと思います。
上記の投稿をまだ読んでいない方は、先にそちらをざっと読んでいただいた方が良いと思います。
jupyter notebookとは
jupyter notebook(ジュピターノートブック)は、プログラムを記述&実行できるソフトウェアでありつつ、プログラムの説明文章などをプログラム間に記述し、文書のような形式で保存できる便利なツールです。
1つのソフトウェア上で、プログラムを記述し、実行できるという点ではIDE(統合開発環境)に近いですが、IDEはpythonファイルを編集、実行しているのに対し、jupyter notebookでは、ipynbファイルというjupyter notebookで動作する専用のファイルを作成して、それを実行していきます。
jupyter notebook専用のファイルができあがると聞くと、pythonファイルとは別のファイルが出来上がるので、ファイルが増えて面倒だなと思うかもしれません。
実際、pythonファイルで残すのかipynbファイルで残すのか悩ましいことはたまにあります。
ただ、データ分析のように分析する目的、処理内容、分析結果、分析に対する考察などをレポートにまとめる場合に、jupyter notebookは本領を発揮します。
実際に使いながら説明していきたいと思います。
- jupyter notebookは、プログラムを記述&実行できるソフトウェア
- プログラムに対する説明文章を記述して、文書形式で保存できるので、データ分析のようなレポートを作成する場合に便利である
- ipynbファイルというjupyter notebook専用のファイルが生成される
jupyter notebookのインストール
jupyter notebookは、無料でPyPIに公開されているモジュールなので、pipでインストールすることができます。PyPI、pipのことがよくわからない方は、以前の投稿「Pythonの始め方④ pipって何ですか?Pythonを便利に利用するためのpipの理解」を御覧ください。
以下のpipコマンドで簡単にインストールできます。
$ pip3 install jupyter
> py -3 -m pip install jupyter
※おそらくjupyter notebookのインストール方法をネットで調べるとAnacondaを用いた方法が多数出てくると思います。Anacondaはpythonの便利なパッケージを事前にまとめてインストールして環境を簡単に整えてくれるソフトウェアです。(jupyter notebookも最初から含まれています。)
ただ、自分が欲しいパッケージが入っていない場合は、結局自分でpip installしなければならないので、最初から自分でpip installできるようになっておいたほうが個人的には良いと思っています。
jupyter notebookの起動
jupyter notebookを利用する際は、ターミナル画面で任意のフォルダに移動して、そこでjupyter notebookというコマンドを入力します。
今回は、自分のDesktopに移動して、そこでjupyter notebookを立ち上げるようにします。
$ cd Desktop
$ jupyter notebook
するとターミナル画面には以下のようなメッセージ(内容は若干違う可能性があります)が現れ、ブラウザが自動で起動されてjupyter notebookの画面が開くと思います。
[I 12:20:26.813 NotebookApp] JupyterLab extension loaded from /Users/(ユーザー名)/lib/python3.6/site-packages/jupyterlab
[I 12:20:26.814 NotebookApp] JupyterLab application directory is /Users/(ユーザー名)/share/jupyter/lab
[I 12:20:26.825 NotebookApp] Serving notebooks from local directory: /Users/(ユーザー名)/Desktop
[I 12:20:26.825 NotebookApp] 0 active kernels
[I 12:20:26.826 NotebookApp] The Jupyter Notebook is running at:
[I 12:20:26.826 NotebookApp] http://localhost:8888/?token=...
[I 12:20:26.826 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 12:20:26.827 NotebookApp]
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=...
Desktopに何もファイルがなければ以下のような画面がブラウザに表示されていると思います。
なにかのファイルをDesktopに置いていればそのファイルがリストされていると思います。
これはjupyter notebookを使って、ブラウザ越しに自分のDesktop画面を見ているからです。

※仮にブラウザを誤って閉じてしまったという方は、少し上で黒い画面に表示された「http://localhost:8888/?token=…..」という文字をブラウザのurlの欄にコピペしてください。
再度jupyter notebookの画面がブラウザに表示されます。
jupyter notebookを使ってpythonを実行
それでは、jupyter notebookを使ってipynbファイルを作成し、pythonを実行していきましょう。jupyter notebook画面の右上のNewを押すとプルダウンが現れ、Python3という行が表示されると思いますので、Python3を押してください。

するとUntitledと書かれた以下の画面がブラウザに現れます。と同時にDesktopにUntitled.ipynbファイルも生成されていると思います。

この四角枠の部分をセルと呼ぶのですが、このセル内にpythonのプログラムを記述していきます。hello worldを記述してみたいと思います。
セル内に以下のように記述し、緑四角がそのセルを囲っていることを確認した上で、Shiftを押しながらEnterを押します(以降Shift + Enterと表記します)。このShift + Enterがjupyter notebookにおける実行になります。

jupyter notebookでは、実行結果が青枠のところに表示されます。
ここで、赤矢印で示している箇所のln[1]の数字の意味が少しトリッキーなので説明します。
この数字は、「(このjupyter notebookを開いてからセルを実行した全実行回数を通して)このセルを実行した(最新の)順番」が表示されます。
わかりにくい説明なので実行例を示します。
まず、もう一度同じセルをShift + Enterで実行してみてください。すると数字がln[2]に増えると思います。このセルが2回目に実行されたことを意味します。(1回目のセルの実行結果は見えなくなってしまいます。)

次に上から2つ目のセルに以下のように記述して実行します。
すると2つ目のセルの左にln[3]とでます。このセルが3番目に実行されたことを意味します。

なんとなく使い方がわかったでしょうか?
jupyter notebookはセルごとにプログラムを実行することができるため、プログラムのバグに気づきやすいところが利点です。
おそらく使ってみればすぐに慣れると思います。
1点を気をつけないといけない点があります。
以下のように1つ目のセルの内容を書き換えて再度実行すると内容を消す前のcの値である3を使って、c + dが計算できてしまいます。

jupyter notebookはセルごとに実行していくことができる点は便利なのですが、セルの内容を書き換えた時に過去の実行結果が残ったままになってしまうことがあります。
なので、セル内のプログラムを書き換えた場合は、Kernelのプルダウンにある「Restart&Clear Output」を押すことをおすすめします。これを押すとjupyter notebookがリセットされてln[1]から実行されるので、以下のようにcがまだ定義されていないですよというエラーがでてきます。

jupyter notebookへの文章の記述
jupyter notebookでプログラムを実行できることはわかったと思いますが、今度はjupyter notebookで文書を作成できるメリットをお伝えします。
プログラムを記述していると、各プログラムがどうゆう目的で書いたのか、どんな内容のプログラムなのかを説明したくなると思います。
pythonの記述方法の中で#を使ったコメント文があり、それでプログラムの説明を記述することも可能なのですが、jupyter notebookではMarkdownという記法を使って、簡単に見やすい文書にすることができます。
百聞は一見にしかずなので、書いてみたいと思います。
jupyter notebook記述例

いかがでしょうか?プログラムの中身は理解しなくても良いのですが、jupyter notebookを使ってMarkdownで記述することで見やすくなっていないでしょうか?
どうやって記述しているかというと、下の画像の赤丸で囲った部分のプルダウンをMarkdownに変えることでセルをプログラム用のセルからMarkdown用のセルに変更できます。ln[数字]が左からなくなればMarkdown用のセルになっています。

後は、Markdownの記述方法に従って書きます。Markdownの記述方法についてはこちらのページを参考にしていただければと思います。#の数で見出しの大きさを変えられたりするので便利に記述できます。
jupyter notebookについての説明とインスール、実行方法、文書形式で記述する方法について書きました。
ここまでこれば、私がブログで書いている様々なプログラムもコピペで実行できるようになるかと思いますので、試しに実行してみていただければと思います。
おすすめ書籍
markdownの書き方を勉強したいという方はこちらの本がおすすめです。
よかったら読んでみてください。
コメント
[…] jupyter notebookでpythonを動かす […]
[…] notebookの使い方については「Pythonの始め方⑤ jupyter notebookでpythonを動かす」を御覧ください。ただ、その前にこちらの「Pythonの始め方④ […]