【Python】Jupyter Notebookの使い方基礎

Pythonを扱える統合開発環境(IDE)にJupyter Notebookがあります。jupyterは、データサイエンスの分野で好んで使われるIDEで、他のIDEとは大きく異なる特徴も持ちます。

本記事では、Jupyter Notebookの特徴について紹介します。また、基本的な操作方法についてもまとめていきます。

Jupyter Notebookとは

jupyter notebookはProject Jupyterという非営利団体によって開発・サポートされているIDEです。Project Jupyterの理念は、「あらゆるプログラミング言語にわたってインタラクティブなデータサイエンスと科学計算をサポートすること」です。

したがって、Jupyter Notebookにはデータサイエンス等において便利な機能が数多く備えられています。

形式

Jupyter Notebookの大きな特徴の1つは、Webアプリケーションとして提供されるという点です。Notebookと呼ばれるファイルをブラウザ上で実行します。プログラムの実行だけでなく、実行結果の保存や共有も可能です。

表示形式

Jupyter Notebookは画面も他のIDEとは一風異なります。Jupyterの画面は「プログラム」と「出力結果」と「マークダウン」に分類されます。

プログラムやマークダウンのが1つの塊はセルと呼ばれます。マークダウンはコメントのようなもので、これも好きな位置に配置することができます。

プログラムを複数のセルに分ければ、細分化して実行することもできます。

実行順序

Jupyterでは、プログラムが上から順に実行されるとは限りません。

上述のように、プログラムはセルに分けられます。セルは好きな順序で実行することができるので、下のセルから実行するということも可能です。

ただし、そのセルで必要なライブラリや変数はあらかじめ定義されている必要があります。例えば以下のような場合、上のセルから順に実行するとエラーは起きませんが、下から実行するとpandasがインポートできていないのでエラーとなってしまいます。

上から実行するとエラーなく処理が進む
pandasがインポートされていないとエラーが出る

操作方法

実際にJupyterを使用するにあたってよく使うであろう操作の操作方法を紹介します。

実行

セルを実行する

単一のセルを実行する場合は、画面上部の”Run”ボタンを押します。

キーボードで実行したい場合は、Ctrl + Enterで実行できます。また、Shift + Enterで実行するかつ新規セルを現在セルの下部に作成します。

すべてのセルをまとめて実行する

すべてのセルのプログラムをまとめて実行したい場合はCellタブから”Run All”を選択します。

マークダウン

セルをマークダウンにするにはCellタブのCell Typeを”Markdown”にします。セル左側のIn[ ]がないセルはマークダウンです。

キーボードでは、コマンドモード時にMを押すとマークダウンになります。コマンドモードとはセル左側のバーの色が水色の状態で、セル内に書き込むのではなく、コマンド操作を受け付ける状態です。

プログラムを記述できる状態でEscを押すとコマンドモードになります。

カーネル

Jupyterにおけるカーネルとは、入力されたコードを対話的に処理して結果を返す一連のプロセスを指します。同一カーネルで実行したセルの実行結果は全て保持されています。

同じカーネルで何度もプログラムを修正して再実行を繰り返すと、以前のデータを保持しているために結果がおかしなことになる場合があります。そういったことを防ぐためには、まっさらな状態でプログラムを実行する、つまり、カーネルを再起動させる必要があります。

カーネル操作はKernelタブで行います。Restartを含む操作でカーネルを再起動します。

“Restart”は単純にカーネルを再起動します。これまでの結果出力や実行順序は残ったままです。新たにセルを実行するとIn[1]から始まります。

“Restart & Clear Output”はカーネルを再起動し、これまでの出力結果を全て消去します。

“Restart & Run All”はカーネルを再起動し、全てのセルを実行します。

まとめ

データ分析用に用意された少々特殊なJupyter Notebookの特徴と使い方について紹介しました。データフレームやグラフをコードの真下に表示させることができるので、分析用のIDEとしては使いやすいと思います。

データ分析や科学計算に特化しているその利点を有効活用して、生産性を高めたいところです。

ではでは👋