Pythonの実行環境について調べたり、データ分析の勉強をしているとよくJupyter Notebook(ジュピターノートブック)という言葉を耳にしますよね。本記事ではそのJupyter Notebookとは何なのか、そしてスクリプト実行と比較してどのようなメリット・デメリットがあるのかについて解説していきます。
Jupyter Notebookとは
Jupyter Notebookはインタラクティブにプログラムを実行できるwebベースのPythonの環境のひとつです。このプロジェクトはGitHub上でOSS(オープンソースソフトウェア)として公開されており、誰でも無料で利用することができます。
インタラクティブに実行できてかつノート形式であるとはどういうことかは以下の画像を見ると比較的簡単に理解できますよね。また以下の画像はJupyter NotebookのGitHubリポジトリから引用したものです。
画像の通りJupyter Notebookはブラウザ上で利用できるプログラムの実行環境であり、主にプログラムの記述を行う部分とコメント部分から構成されます。プログラムが書かれている各マスのことをセルと呼び、Jupyter Notebookではこのセル単位でプログラムを実行することができます。コメント部分はプログラムの実行結果と関係のないテキストを残すことができ、Markdown形式で記述することができます。
Jupyter Notebookは特にデータサイエンスの分野で広く用いられ、主にデータの分析や可視化といった部分で利用されるツールといえるでしょう。データサイエンスのコンペティションを運営しているKaggleでは、プラットフォーム上にJupyter Notebookの実行環境を用意しており、その形式を利用して参加者が自身の分析結果を共有することができます。
Jupyter NotebookとPythonスクリプト
本章ではJupyter NotebookとPythonスクリプトそれぞれのメリット・デメリットについて紹介していきましょう。ただしどの点をメリットとみるかを人による部分もあるため、本章全体に渡り筆者の主観が含まれることはご理解ください。
Pythonスクリプトのメリット
- バージョン管理が容易(Jupyter Notebookでは変更の差分の確認が難しい)
- ファイルサイズが小さい
- テキストファイルなのでエディタで開くとすぐにプログラムの中身を確認できる(Jupyter Notebookは基本的にサーバーを立ち上げる必要がある)
- コマンドひとつでスクリプトの全てが実行でき、実行順による冪等性を担保できる
Jupyter Notebookのメリット
- プログラム、コメント、標準出力や作図などのプログラムの出力結果が1つにまとまっており、情報が整理されやすく他人とも共有がしやすい
- データ分析のようなある処理の結果を考慮し、次の行動が決まるような作業が直感的に行える
- コードを逐次実行しながら結果が確認できるため、教育用コンテンツとして配布しやすい
このようにJupyter Notebookは一般的な開発に適しているわけではありませんが、データ分析結果の可視化・共有と教育分野においては非常に利用しやすい形式であると考えられます。
Jupyter Notebookを動かす
本章ではPython3がインストールされている状態から、Jupyter Notebookを起動してHello worldを出力するまでのチュートリアルを行います。まずは以下のコマンドでJupyter Notebookをインストールしましょう。
pip instal jupyter
インストール完了後にMacではターミナル、Windowsではコマンドプロンプト上で以下のコマンドを実行することでJupyter Notebookを起動できます。
jupyter notebook
するとブラウザいに新たなタブが立ち上がり、Jupyterの環境が立ち上がります。その画面で右上の「New」ボタンを押下し、Python3を選択するとJupyter NotebookでPythonプログラムを書く準備が整います。
ここで以下のようにコードを書くことでPythonプログラムを実行できます。
まとめ
Jupyter Notebookについて重要な点をまとめましょう。
- ブラウザから利用できるインタラクティブなPythonの実行環境
- GitHub上でのOSSとして公開されている
- データ分析の分野で広く用いられている