Jupyter Notebook の基本操作

Jupyter Notebook の基本操作

Jupyter Notebook の使い方

 この記事では Jupyter Notebook の起動方法と、基本的な使い方について解説します。

Jupyter Notebook の起動

 Anaconda Navigator から Launch するか、Anaconda Prompt で

>jupyter notebook

と入力するとカーネルが起動します。

 Jupyter Notebook カーネルの起動

 しばらく待つと、Webブラウザが開いて Jupyter Notebook のダッシュボードが表示されます。先に開いたカーネルと、この Webブラウザが互いに通信することによって Jupyter Notebook が動く仕組みになっているのです。

 それでは、Python3 のコードを書くノートをつくりましょう。
 右上隅にある [New] をクリックして [Python 3] を選択してください(下図)。

 Jupyter Notebook 新しいノートを作成

 すると新しいノートブックが開きます。ノートは .ipynb という拡張子のついたファイルとして作成されます。ipynb というのは、Jupyter Notebook がまだ IPython Notebook と呼ばれていた頃の名残です(以前は Python 専用の Notebook でしたが、現在では R など他の言語を扱うこともできるようになっています)。

 Jupyter Notebook Untitled

 ヘッダにある "Untitled" がノートの名前です(上図)。
 

ノートに名前をつける

 このままでも特に問題ありませんが、せっかくこれから Python を始めようというときに「表題なし」ではやる気が出ませんよね。やはりここはノートに自分の好きな名前をつけておきましょう。
 "Untitled" の部分をクリックすると Rename画面が表示されるので、テキストボックスに好きな名前を入力してください。ここでは "MyNoteBook" としておきます。入力を終えたら右下隅の [Rename] を押します(下図)。

 Jupyter Notebook Rename

 すると次の図のようにノートの名前が変更されます。

 Jupyter Notebook メニュー、ツールバー、コードセル

 以降の解説をスムーズに理解するために、メニュー、ツールバー、コードセルという名称だけ覚えてください。
 

Python のコードを書き込む

 コードセルと呼ばれる部分に Python のコードを記述します。
 print()関数を使ってメッセージを表示させてみましょう。

print("Pythonプログラミングを始めましょう")

と書き込んでください。それからツールバーの [Run] を押すか、[Shift] + [Enter]、または [Ctrl] + [Enter] を押すとコードが実行されます([Shift] + [Enter] は下にセルが存在しない場合にはセルを1つ作成しますが、[Ctrl] + [Enter] はコードを実行するだけです)。この先何千回も実行ボタンを押すことを考えると、やはり [Shift] + [Enter] や [Ctrl] + [Enter] をおすすめします。

 Jupyter Notebook プログラミングコードの記入

 すると、コードセルのすぐ下に実行結果が表示されます(下図)。

 Jupyter Notebook コードの実行結果

 その下に新しいセルが自動で追加されるので、ここにまたコードを書くことができます。
 

変数の値を保存する

 コードセルに x = 10 と記述して実行してください。

 Jupyter Notebook 変数の定義

 x には 10 が代入されているので、Python ではこの記述だけで x は整数型として定義されたことになります (10.0 を入れると浮動小数点数型です)。コードが実行されたことで、変数 x の値をノート全体で共有することができます。次のコードセルで x の値を表示してみます。

 Jupyter Notebook 変数を表示

 x の値が保存されていることが確認できました。
 

モジュールのインポート

 モジュールを読み込むと、色々と便利な関数を使うことができるようになります。ここでは Python の標準ライブラリから statistics という統計処理用モジュールをインポートしてみましょう。次のように記述してコードを実行すると、statistics に含まれるすべての関数を利用できるようになります。

 Jupyter Notebook 統計モジュールstatisticsをインポート

 変数と同じく、あるコードセルで読み込んだモジュールは他のセルでも使えるようになります。次のコードセルで数字の入った リスト を定義して、mean関数で要素の平均値を求めてみます。

 Jupyter Notebook mean関数で平均値を計算

 リストの平均値 68 が表示されました。
 

コードの再実行

 実行結果が保存された状態にあるのはノートを開いている間だけです。一度ノートを閉じたあとに同じノートを再び開くと、変数の値や読み込んだモジュールなどは全てクリアされた状態に戻っています。そこで再び変数などの値を有効にしたいときは、ツールバーにある [restart the kernel] を押します。

 Jupyter Notebook 再実行 restart the kernel

 すると下の図のような確認画面が現れるので、[Restart and Run All Cells] と書かれた赤いボタンをクリックします。

 Jupyter Notebook 再実行 Restart and Run All Cells

 コードセルが上から順に再実行されて、変数やモジュールが再び有効になります。

実行済のコードセルを確認します

 あるコードセルが実行済であるかどうかは、コードセルの左にある "In [ ]:" の [ ] に数字が入っているかどうかで見分けることができます。数字が入っていれば実行済、入っていなければ、まだ実行されていないコードです。

 Jupyter 実行されていないコードセル
 

コードセルの追加と削除

 ツールバーの左から 2 番目のアイコン [insert cell below] を押すと、現在選択されているコードセルの下に、空白のセルを1つ追加することができます。

 Jupyter コードセルの追加 insert cell below

 ツールバーの [cut selected cells](ハサミの形をしたアイコン)を押すと、現在選択されているコードセルが削除されます。

 Jupyter コードセルの削除 cut selected cells

コードセルの結合と分割

 Jupyter Notebook では複数のコードセルを1つにまとめたり、逆にコードセルを複数のセルに分割することができます。

 In [4] と In [5] を1つのセルにまとめてみましょう。
 In [4] を選択した状態で、[Edit] の [Merge Cell Below] をクリックします。

 Jupyter コードセルの結合 Merge Cell Below

 Jupyter コードセルの結合

 コードセルが結合されました。
 In [5] を選択して、[Merge Cell Above] を押しても結合できます。
 
 次は結合したコードセルを再び分割してみます。
 import* の後ろにカーソルを置いて、[Edit] の [Split Cell] を選択します。

 Jupyter コードセルの分割 Split Cell

 カーソルの位置を境目にコードセルが分割されます。

 Jupyter コードセルの分割
 

コード補完機能

 Jupyter Notebook にはコード補完機能が備わっています。コードの入力中に [Tab] キーを押すと、Python で使用されるキーワードやメソッド、関数などの入力候補一覧が表示されます。たとえばコードセルに pr だけ入力して [Tab] キーを押してみると、print や property, %profile などが並びます (頭文字 % で始まる単語は Jupyter Notebook のマジックコマンドです)。

 Jupyter コード補完 property

 ユーザーはこの中から目的の単語を選択して入力することにより、関数名の誤入力などを防ぐことができます。モジュールをインポートすると、そのモジュールに含まれる関数も入力候補一覧に追加されます。現在は statistics をインポートしているので、mean や median などが候補に含まれているはずです。me とだけ入力して [Tab] キーを押してみましょう。

 jupyter コード補完 statistics median 中央値

 mean, median, median_grouped などはすべて statistics モジュールの関数名です。
 各種ライブラリに含まれる関数名をすべて正確に覚えていられるわけもないので、このように入力候補を表示させることで、名前から機能を類推することができます。たとえば median は、その名の通り、データの中央値を返す関数です。
 

ノートブックの保存

 Jupyter Notebook のデフォルト設定では 120 秒に 1 回、ノートの内容が自動保存されますが、左上隅にある [Save and CheckPoint] でセーブすることもできます。

 このアイコンを使ってファイルを保存した場合には、ファイルの上書きと同時にチェックポイントが作成されます。Notebook 本体はオートセーブによって定期的に上書きされていきますが、ユーザーはいつでも自分で作成したチェックポイントに戻ることができます。

 アイコンを押して、ここまでの内容を保存しておきましょう。

 Jupyter Notebook ファイルに上書き保存

 ヘッダには [Last Checkpoint x分前] と表示されます。

 Jupyter Notebook Last Checkpointの表示、Revert to Checkpoint

 メニューから [File] 、[Revert to Chekpoint] を選択すると、チェックポイントの日時が表示されるので、もし戻りたいと思えばここをクリックしてください。ちなみに、色々なアプリケーションに見られるセーブアイコンは昔使われていたフロッピーディスクという記録媒体に由来します(今の若い人はフロッピー知らないだろうなあ ...... )。
 

オートセーブの時間間隔を変更する

 マジックコマンドの %Autosave を使うと、オートセーブの間隔を自分で設定することができます。たとえば、オートセーブを 10 分 (600秒) 間隔にしたい場合は

%Autosave 600

と記述します。オートセーブ機能を OFF にする場合は

%Autosave 0

とします。
 

Jupyter Notebook を閉じる

 Jupyter Notebook の機能の詳細な説明は別記事で解説します。今回はこのぐらいにして、Jupyter Notebook を閉じることにします。メニューの [File] から [Close and Halt] を選択するのが正しい閉じ方です。ブラウザの右上隅の [×] を押して終了するとプロセスが残ってしまうので、絶対にやらないでください。

 Jupyter Notebook を Close and Halt で終了

 ≫ Jupyter Notebook に文章や数式を書き込みます
 

Python ユーザのための Jupyter 実践入門

 現時点では Jupyter Notebook に関する知見を集約した本は限られていますが、ほぼ唯一の選択肢ともいえる『Python ユーザのための Jupyter 実践入門』は Jupyter Notebook の機能を隈なく解説した良書です。
 

 本書は Anaconda を利用した Jupyter Notebook の導入方法から始まって、Jupyter Notebook の基本操作、インターフェース、キーボードショートカット、マジックコマンド、Markdown などについてユーザーが必要とする情報をきれいに整理した形で提供しています。

 Jupyter Notebook と連携して、pandas, Matplotlib, Bokeh などのツールを用いてデータを可視化する方法について学ぶこともできます。

 本書の後半では、Jupyter Notebook のカスタマイズ方法や、Cloud Datalab, JupyterLab など、他の書籍や Webサイトで取得しにくい情報も掲載しています。データ分析や機械学習、科学シミュレーションなどに Jupyter を活用したいと考えるユーザーにとっては必携の一冊です。