Pythonのプログラミングをする時、このブログではターミナルや対話型シェル、Atomエディタなどを使ってコードを書いていますが、jupyter notebookというものを利用する機会も今後出てくると思います。
対話型シェルとエディタを合わせたような感覚でしょうか。とても見やすく、コードの修正などもとても楽です。データ分析などをPythonで扱う時など、jupyter notebookを使って解説しているものも多いと思います。
ここではMacにインストールしたAnacondaのjupyter notebookの基本的な使い方についてまとめていきます。Pythonを触る時などは、好みで対話型シェルやエディタなどと使い分けるといいでしょう。
jupyter notebookのインストールは?
jupyter notebookを使うには、まずインストールする必要がありますが、2通りの方法があります。ここではMacでの利用を想定しています。(私は2番目のanacondaを利用)
pipコマンドでインストールする
Python3がインストールしているなら、パッケージ管理のコマンドのpipが使えます。ただし、このブログではanacondaを利用しているので、この方法は必要ありません。
次のコマンドでインストールできます。
$ pip install --upgrade pip
$ pip install jupyter
pipをアップグレードした後に、jupyter notebookをインストールします。
anacondaをインストール
jupyter notebookは、anacondaをインストールすれば一緒にインストールされています。
このブログではPython3を利用する為に、すでにanacondaをインストールしているので、jupyter notebookはインストールされています。
anacondaのインストールについてはこちらを参考にしてください。
anacondaをインストールしてもjupyter notebookがインストールされていない場合は、次のコマンドを利用するか、Anaconda-NavigatorのEnviromentsメニューからインストールすることができます。
$ conda install -c anaconda jupyter
anacondaを利用するのが、一番簡単だと思いますのでおすすめです。
次のコマンドを実行すると、インストールされているもののリストが表示されます。
$ conda list
表示されるリストの中に「jupyter」があれば新たにインストールする必要はありません。
jupyter notebookを起動
jupyter notebookを起動するには、ターミナルから起動するか、Anaconda Navigatorからjupyter notebookのアイコンをクリックして起動します。
(注)jupyter notebookを起動してもブラウザにjupyterのHOME画面が表示されず白紙ページのままである場合は以下の設定を試してみてください。
Anaconda Navigatorからjupyter notebookを起動
アプリケーションからAnaconda Navigatorのアイコンをクリックして起動します。
次のような起動画面が表示されるので、「notebook」の「Launch」をクリックします。
ブラウザにjupyter notebookのホーム画面が表示されるはずです。
なお、最近はアイコン左側の「JupyterLab」を使うことも多くなりましたが、notebook自体の使い方は同じですので、こちらを利用してもいいです。JupyterLabはJupyter notebookが機能拡張された公式な後継IDEですので、いずれは移行することになるでしょう。ファイルの統合管理やタブの活用など便利になっています。
ターミナルからjupyter notebookを起動
今度はターミナルから起動してみましょう。
ターミナルを起動して、プロンプトに「jupyter notebook」と入力します。
jupyter notebook
ブラウザが起動してjupyter notebookのホーム画面が表示されます。
http://localhost:8888/tree がjupyterのローカルアドレスになります。
なお、anacondaでJupyterLabをターミナルから使う場合は、次のコマンドを実行します。
jupyter lab
JupyterLabのホーム画面がこれで表示されます。
jupyter notebookでPythonを起動
jupyter notebookが起動できたので、Python3を使ってみましょう。
jupyter notebookの起動画面の右側の方に「New」とあるのでここをクリックします。
「Python3」と表示されているので、ここをクリックします。
jupyter notebookでPythonが使えるようになりました。
In[]:というラベルと一緒に入力欄が表示されます。ここにPythonのコードを入力して、「▶︎I」Runボタンをクリックするか、メニューから[Cell] > [Run Cells]で実行するか、あるいは[control]+[return]で実行します。
コードを入力してみる
少しだけコードを入力してみましょう。
以下のように簡単な計算のコードを入力してみます。
10 + 10
x = 20
y = 30
x + y
a = 100
b = 30
c = a / b
print(c)
jupyter notebookのセルに次のように入力してみます。
1つのセルに1行のコードのみを入力して、[shift]+[return]すると次のセルが表示されるので、1行毎にコードを書いていくこともできますし、一番下のように、1つのセルにまとめてコードを入力することで実行結果を表示させることもできます。
ノートに名前をつける
画面上側の「Untitled」のところをクリックすると、現在使っているノートに名前をつけて保存することができます。
名前を入力したら、右下の「Rename」をクリックして保存します。
このノート自体は一定の時間間隔で自動保存されていますが、ノートの保存ボタンを押すとその時点でのチェックポイントとして保存されます。メニューの[File > Revert to Checkpoint]でその時点まで戻ることもできます。
コメントを記入する
セルにはコメントやドキュメントを記入することができます。後から挿入することもできるので、このあたりはターミナルで入力する場合と違ってjupyter notebookの便利なところですね。
コードの途中に挿入したい場合はメニューの[Insert]から追加することもできます。
コメントはマークダウン記法で残すことができます。
セルを選択してメニューから[Cell > Cell Type > Markdown]をクリックするか、アイコンメニューから「Code」を「Markdown」に変更することができます。
マークダウン記法についてはこちらのサイトなど参考にしてみてください。
もちろん最後のセルのように、通常の#を利用してのコメントも入力することもできます。
シェルコマンドを実行する
ターミナルで使うシェルコマンドですが、ノートブック上で使えるコマンドもあります。セルの最初に「!」を入力し、それに続けてシェルコマンドを入力して、[shift]+[return]で実行します。
試しに、現在のディレクトリにあるファイルとフォルダの一覧を表示する「ls」コマンド、現在のディレクトリパスを取得する「pwd」コマンド、新しいフォルダ(ディレクトリ)を作成する「mkdir」コマンドを試してみると、次のようになります。
それぞれのコマンドが実行されて結果が得られているのがわかると思います。この機能を頻繁に使うことは無いとも思いますが、ちょっとした確認が必要になった時にわざわざターミナルを起動しなくてもいいという便利さもあると思います。
ヘルプシステム – .<TAB>, ?, [shift]+[tab]
jupiter notebookには便利なヘルプ機能があります。
tabキーによる補完
プログラミングをしている時、メソッドのコードを簡単に補完できるエディタはたくさんありますが、jupyter notebookも補完機能が使えます。
次のコードのようにドット(.)を入力した後に[tab]キーを押します。すると利用できるメソットが表示されるので、目的のものを選択して使います。
このようにして、いろんなモジュールの補完をtabで行うことができます。
?によるドキュメント検索
他に便利な機能として?記号があります。Pythonではhelp()関数を使ってドキュメントを見ることがありますが、jupyter notebookでは?を使えば簡単に関数のドキュメントを見ることができます。
次のように関数に続けて「?」を入力して実行すると、ドキュメントが出てきます。
このように下側にドキュメントが表示されます。
組み込み関数や他の言語で実装されたオブジェクト以外の、例えば自分で作った関数など、クエスチョンマークを2つ(??)続けた場合は、関数のソースコードまで見ることができるショートカットになっています。
[shift]+[tab]でドキュメント表示
関数のドキュメントは、関数を入力して[shift]+[tab]キーを押すことで表示することができます。
関数のすぐ下に吹き出しのような形で表示されます。どのような引数を入れるパターンがあるのかチラ見するのに便利です。
他にもいろんなコマンドがありますが、ここではjupyter notebookを使う時にその都度触れて行こうと思います。
ショートカットキーの一覧表示 – [h]
作業効率を上げるには、誰もがショートカットキーを使うことでしょう。jupyter notebookにも数多くのショートカットキーが設定されていて、一覧表示として見ることができます。
画面がコマンドモードであることを確認します。
入力のセルの左端が青色になっている時がコマンドモードです。セル以外のところをクリックしたり[esc]キーを押せばこのモードになります。
ちなみにコード入力時はエディットモードとなって左端が緑色になっています。
モードがコマンドモードの時(セルの端が青色の時)に[h]キーを押すと、ショートカットキーの一覧が画面に表示されます。
ショートカットキーがわからない場合は、この機能を使って確認しましょう。一度、さらっと眺めて見ておくのもいいかもしれませんね。
jupyter notebookを終了させる
ここまでで、jupyter notebookでの基本的な作業は一通りできましたが、今度は終了させる方法を理解しておきましょう。
作業していたブラウザのタブを閉じるだけでは終了したことにはなりません。
ブラウザを閉じるよりも、「File」メニューから「Close and Halt」で終了させましょう。
あるいは、jupyter notebookのHomeタブを選択します。
「Running」というタブを選択します。
「Currently running Jupyter processes」の表示の下に「Notebooks」とあり、先ほどまで作業していたファイルが、起動していることがわかります。この欄の右端に「Shutdown」とありますので、ここをクリックします。(Filesタブで起動しているファイルにチェックをいれることでも、タブの下のあたりに「Shutdown」の表示が出るのでそちらをクリックしても終了できます。)
これで作業していたノートのファイルが終了したことが確認できます。
ちなみにこのノートのファイルの削除ははHomeのFilesの中で選択して削除することができます。選択するとファイル一覧の上側にゴミ箱アイコンで出てききます。
ただし、終了作業はここで終わりではありません。
ターミナルで5秒以内に終了させる?
これで作業そのものは終了できましたが、jupyter notebook自体はまだ起動したままです。Homeタブを閉じても終了にはなっていません。まだ、サーバー自体は生きているわけです。ターミナルからjupyter notebook本体を終了させる必要があります。
これを終了させるには、ターミナルを表示させて、[control]+[C]を押します。
すると、
Shutdown this notebook server (y/[n])?
と聞いてくるので、すぐに「y」キーを押して終了させます。
もし5秒以内に押さなければ、次のような表示になります。
No answer for 5s: resuming operation…
[control]+[C]を押してから、5秒以内に「y」キーを押して「return」で終了しないとレジューム状態になります。
その時はもう一度[control]+[C]を押して、5秒以内に「y」キーでjupyter notebookを終了させます。
ただ、こういうターミナルの終了処理ではなく、Jupyter notebookのブラウザ画面の右上側の方にある[Quit]というところをクリックすれば、サーバー自体も終了させることができるので、こういったターミナルで終了させる方法をとる必要はありません。
まとめ
jupyter notebookのMacでの基本的な操作をまとめてみました。Atomや対話型シェルだけでなく、jupyter notebookでもPythonを操作するのも便利だと思います。
終了時にターミナルでシャットダウンさせることを忘れないようにしましょう。
その他の機能は、実際にコードを触りながら学べば良いと思います。このブログでも、jupyter notebookを使ってPythonの話を進めることも、扱う項目によっては行っています。