別記事「私がPythonの学習で最初に購入した書籍とおすすめポイント2つ」や「Python開発環境ツール Anacondaの3つの特徴と注意点」では、Jupyter Notebook(ジュピター ノートブック)と呼ばれるツールをインストールし、Pythonの学習を始めたことを紹介しました。
今回の記事では、
- Pythonのプログラミング環境として、どのようなツールがあるのかを知りたい
- Pythonはクラウド環境で学習をはじめたが、Jupyter Notebookは知らない
- Jupyter Notebookというツールは聞いたことがあるが、よく分からない
という人に向けて、著者が現在でも使用している Jupyter Notebook について、その特徴と注意点を紹介していきます。
Jupyter Notebookの5つの特徴と注意点
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初学者がコードを写経するのにも適していますし、実行結果によって次の一手を変えたい、などを考えながらプログラミングする場合に適してると言えます。
2.記録&報告目的でも使いやすい
Jupyter Notebookはプログラムのコーディング目的だけではなく、記録や報告目的でも使いやすいツールとなっています。
たとえば、Jupyter Notebookには数式をきれいに書くための機能があります。下の図は一例となりますが、行列式やテキストだけでは表現が難しい数式も表現することができます。
そのため、自分が分析で用いた数式やメモなども、ひとつのノートブックの中に記録として残すことができます。
さらに、Pythonのコードおよび数式やグラフなどの分析結果を、HTML形式で出力することができます。そのため、作成したノートブックを報告用のレポートとしても活用することができます。
3.インターネット接続なしで利用可能
Jupyter Notebookを個人で所有するパソコン等のローカルコンピューターにインストールすることで、インターネットへの接続なしで利用することができます。
職場や自宅などのインターネット回線が安定している場所で作業する場合であれば、クラウド上のサービスを利用した場合でも特に問題はないかもしれません。
しかし、ネット回線が安定しない場所で作業する場合は、少し状況が変わってきます。
たとえば、外出先のカフェで「リラックスしながら作業したい」「集中力を高めて作業をしたい」と思って作業を始めたのに、ネットの通信状況の悪さゆえに実行のたびに時間がかかってしまう。。。なんてストレスは、インストール版であれば、感じることはありません。
4.分析で用いるデータをクラウドに保存する必要がない
Jupyter Notebookをローカルコンピューターにインストールすることで、分析で用いるデータをクラウドに保存する手間や必要性がなくなります。
たとえば、クラウドサービスのひとつのGoogle colaboratoryを利用する場合には、CSVファイルなどの入力データをあらかじめCSVファイルをGoogle Driveに登録しておく必要があります。
クラウドへのデータ保存は、慣れてしまえば大きな手間にはならないかもしれませんが、プログラムの実行のためだけにクラウドにデータを保存する手間は、ないに越したことはありません。
また、機密性のあるデータを扱っている場合は、クラウド上にデータを保存できないなどの個別事情も考えられます。
そのため、分析データをクラウドに保存する必要がない点はメリットになる場合があります。
5.無償で利用できる
Jupyter Notebookはオープンソースで開発されているソフトエウアであり、誰でも制限なく無償で利用することができます。
Jupyter Notebook導入の注意点
1.実行速度はローカルコンピューターのCPUパワーに律速
Jupyter Notebookに限らず、プログラム開発環境をインストールして使用する場合、プログラムの実行速度は個人パソコン等のローカルコンピューターのCPU/GPUパワーに依存します。
もし、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を使っている理由は「最初に購入した書籍で紹介されていた」という単純な理由ではありましたが、実際に使ってみたうえで良いツールだと思っております。
さらに、Anaconda(アナコンダ)をインストールすることで、もれなくJupyter Notebookもインストールされますので、ぜひ別記事「Python開発環境ツール Anacondaの3つの特徴と注意点」も参考にしてみてください。
私たちは20代から50代のビジネスパーソンに向けて、パラレルキャリア研究会というコミュニティーを運営しています。当研究会はデータサイエンスについても互いに学び合う場を提供しています。
私達と一緒に学んでみたいという意欲のある方、データサイエンスの自学自習に少しでも興味がある方は、お気軽にこちらからお問い合わせください。
じゃあ。