Jupyter Notebookの5つの特徴と注意点

プログラミングの画面

私がPythonの学習で最初に購入した書籍とおすすめポイント2つ」や「Python開発環境ツール Anacondaの3つの特徴と注意点」で、私は、Jupyter Notebook(ジュピター ノートブック)と呼ばれるツールをインストールし、Pythonの学習を始めたことを書きました。

今回のページでは、

  • Pythonのプログラミング環境として、どのようなツールがあるのかを知りたい
  • Pythonはクラウド環境で学習をはじめたが、Jupyter Notebookは知らない
  • Jupyter Notebookというツールは聞いたことがあるが、よく分からない

という人に向けて、私が現在でも使用している Jupyter Notebook について、その特徴と注意点を紹介していきます。

 

JupyterNotebook画面

 

Jupyter Notebook(ジュピター ノートブック)とは?

Jupyter Notebook(ジュピター ノートブック)は非営利団体Project Jupyterが提供する、プログラム作成&共有のためのオープソースのWebアプリケーションです。

PythonやRなどのプログラミング言語のコーディングおよび実行を、Google ChromeやMicrosoft EdgeなどのWebブラウザ上で行えます。

 

Jupyter Notebookの特徴

1.コードの逐次実行が可能

Jupyter Notebookは「ノートブック」と呼ばれる単位でファイルを扱います。ひとつのファイルが一冊のノートというイメージです。拡張子はPythonで使われる.pyではなく、.ipynbとなります。

そして、このノートブックの中には「セル」と呼ばれる入力フィールドが存在し、そのセルの組み合わせで、ひとつのプログラムが構成させます(下の図はJupyter Notebookの画面)。

そして、Jupyter Notebookで作成したコードは、コンパイル(プログラムをCPUが実行できる形に変換すること)をすることなしに、セル単位で実行することができます。そのため、極端に言えば、1行コードを書くごとに実行することができるため、書いたコードがどのような結果を返すかをあれこれ試しながらプログラムを作成することができます。

この「コードを1行記述するたびに実行できる」という特徴は、Python初学者がコードを写経するのにも適していますし、実行結果によって次の一手を変えたい、など考えながらプログラミングしたい場合にも適しています。

JupyterNotebookアプリ画面

2.記録&報告目的でも使いやすい

Jupyter Notebookはプログラムのコーディング目的だけではなく、記録や報告目的でも使いやすいツールとなっています。

たとえば、Jupyter Notebookには数式をきれいに書くための機能があります。下の図は一例となりますが、行列式やテキストだけでは表現が難しい数式も表現することができます。そのため、自分が分析で用いた数式やメモなども、ひとつのノートブックの中に記録として残すことができます。

さらに、Pythonのコードおよび数式やグラフなどの分析結果を、HTML形式で出力することができます。そのため、作成したノートブックを報告用のレポートとしても活用することができます。

Markdownの例

3.インターネット接続なしで利用可能

Jupyter Notebookを個人で所有するパソコン等のローカルコンピューターにインストールすることで、インターネットへの接続なしで使用することができます。

職場や自宅などのインターネット回線が安定している場所で作業する場合であれば、クラウド上のサービスを利用した場合でも特に問題はないかもしれません。しかし、ネット回線が安定しない場所で作業する場合は、少し状況が変わってきます。

たとえば、外出先のカフェで「リラックスしながら作業したい」「集中力を高めて作業をしたい」と思って作業を始めたのに、ネットの通信状況の悪さゆえに実行のたびに時間がかかってしまう。。。なんてストレスは、インストール版であれば、感じることはありません。

4.分析で用いるデータをクラウドに保存する必要がない

Jupyter Notebookをローカルコンピューターにインストールすることで、分析で用いるデータをクラウドに保存する手間や必要性がなくなります。

たとえば、クラウドサービスのひとつのGoogle colaboratoryを利用して、CSVファイルを入力データとして分析を行うためには、あらかじめCSVファイルをGoogle Driveに登録しておく必要があります。

クラウドへのデータ保存は、慣れてしまえば大きな手間にはならないかもしれませんが、プログラムの実行のためだけにクラウドにデータを保存する手間は、ないに越したことはありません。

また、機密性のあるデータを扱っている場合は、クラウド上にデータを保存できないなどの個別事情も考えられます。

そのため、分析データをクラウドに保存する必要がない点はメリットになる場合があります。

5.無償で利用できる

Jupyter Notebookはオープンソースで開発されているソフトエウアであり、誰でも制限なく無償で利用することができます。

 

Jupyter Notebook導入の注意点

1.実行速度はローカルコンピューターのCPUパワーに律速

Jupyter Notebookに限らず、プログラム開発環境をインストールして使用する場合、プログラムの実行速度は個人パソコン等のローカルコンピューターのCPUパワーに依存します。

もし、Pythonでディープラーニング(深層学習)で画像処理のように、膨大な演算処理が求められるプログラムを作りたい場合、GPUが搭載されていないパソコン上では、プログラムの実行時間が極端に長くなってしまう可能性があるため注意が必要となります。

その一方で、データサイエンスで行うデータ分析を考えた場合、たとえば、私のケースで第7世代インテルのCore Mプロセッサ × 4GB RAM環境において、数千行~数万行程度のデータを回帰分析する等の計算量であれば、特に問題に感じることはありませんでした。

 

他のPython関連のツール

本ページではJupyter Notebookを紹介しましたが、Pythonの統合開発環境やコードエディタなどのツールは他にもあります。

ここでは、代表的なツールをご紹介します。各ツールについての説明は行いませんが、ひとつのツールの紹介だけだと情報が偏ってしまう可能性もあるため、一度比較してみるのもいいかもしれません。

■ 統合開発環境

  • PyCharm(パイチャーム)
  • PyScripter(パイスクリプター)

 

■ コードエディタ

  • Atom(アトム)
  • Visual Studio Code(ヴィジュアル スタジオ コード)
  • Sublime Text(サブライム テキスト)

 

まとめ

本ページでは、私自身がPythonのプログラム開発で使用している「Jupyter Notebook(ジュピター ノートブック)」について、5つの特徴と1つの注意点を紹介しました。

私自身がJupyter Notebookを使っている理由は「最初に購入した書籍で紹介されていた」という単純な理由ではありましたが、実際に使ってみたうえで良いツールだと思っております。

個人のパソコンに、Pythonの開発環境をまだインストールしていないという方であれば、Jupyter Notebookの導入を検討してみてはいかがでしょうか?

さらに、Anaconda(アナコンダ)をインストールすることで、もれなくJupyter Notebookもインストールされますので、Anacondaについて興味がある人は「Python開発環境ツール Anacondaの特徴と注意点」も参考にしてみてください。

じゃあ。

ABOUTこの記事をかいた人

パラレルキャリア研究会創設メンバー 岩手県出身。東北大学工学部卒、同大学院工学研究科修了。半導体メーカーに入社後、エンジニアとして半導体製品の企画・開発に10年以上従事。独学&パラ研の場でPythonや統計学を学習中。1児のパパ。趣味は日本酒、ロードバイク。中小企業診断士。