【開発効率アップ】Jupyter NotebookでPythonをらくらく実行!

ディープラーニングや機械学習などで一躍話題の中心に躍り出たPython。 PythonはAIや理数系の処理など特定分野に非常に強い言語ですが、それ以外にもスクレイピングやネットワーク処理からWebアプリ開発、もちろん汎用的なバックエンド処理まで。 様々な課題をシンプルに素早くこなす高い汎用性があります。 また、数行のコードで行列計算などもできてしまうため、Pythonのインタープリターを計算機の代わりに使う人もいるほどです。 そんな汎用性の高いPythonをより気軽に使うための方法としてJupyter Notebookは作られました。 Jupyter Notebookを導入し雑多なタスク処理をPythonに任せることで、Pythonの力や魅力を感じられると共に、Pythonがより身近な存在となっていくでしょう。 今回はこの「Jupyter Notebook」について説明していきたいと思います。

Jupyter Notebookって何?

Jupyter Notebookって何?

Jupyter Notebookって何?

Jupyter Notebookとは、ブラウザ上で対話的にPythonを利用できる実行・開発環境です。 プログラミング言語は基本的に専用のエディター上で記述した上で実行するものですが、一行ずつ「書いたそばから逐次実行していく」インタラクティブな使い方も言語によってはできます。 Pythonも標準でインタラクティブシェルが用意されており、またその拡張版のようなモジュール・ソフトウェアもあり、Python自身のシンプルさと汎用性からこのような使い方でも愛用されてきました。 そして、ブラウザ上からのインタラクティブな実行を実現し、さらにグラフィカルな表示や編集も可能にしたのがJupyter Notebookであり、インタラクティブシェルとしてももっともよく使われるものとなっています。 ブラウザからJupyter Notebookの画面を開くと、コードを書き込む欄とその出力がセットとなったブロックが表示されます。 

amela.co.jp news image 2 Jupyter Notebookではこのブロックのことをセルといいますが、セルにコードを書きながら実行したり、新しいセルを作成してコードを分割したり、あるいは全く別のコードをエディタのタブを分けるかのように並列して書き始めることもできます。 セル上でコードを書く際には基本的なコード補完機能を使うこともできますし、拡張機能を導入してキーバインドの変更などもできるため、本格的なエディターとしても使えます。 ブラウザ上で動くためChromeなどのブラウザさえ動けばどんな環境でも動作し、今普及が進んでいるChromebookなどでも動くため、クラウド型エディタ・IDEとして使われることも多くなってきています。

具体的に何に使うの?

具体的に何に使うの?

具体的に何に使うの?

では、一体このJupyter Notebookとは何に利用するものなのでしょうか。

Pythonの学習

Jupyter Notebookは、最も手軽なPythonの開発環境であり、学習環境でもあります。 Pythonの学習を一般的な手順で始めるには、PCへのPythonのインストールやエディターの導入が必要ですし、場合によってはプロジェクトごとに仮想環境を区切るなどのお作法を学ぶ必要もあるでしょう。 それらの学び始めるまでに越える必要のあるハードルというのは、初学者から見れば決して低くありません。 Jupyter Notebookはそのような面倒な手順を全て飛ばし、オールインワンな学習環境を提供してくれます。 Jupyter Notebookの導入の手間こそありますが、一度ブラウザに表示されれば、あとはコードを書いてその場で実行するだけです。 これまでと比べて、Python学習のハードルが劇的に低くなったことは間違いありません。

高機能なインタラクティブシェルとして

PythonをエディターやIDEで開発している時に、メソッドの使い方の確認やパフォーマンス測定のために、一部のみコードを実行したいと思うことはよくあります。 そんなときコンソールでPythonを実行して試してみるのもいいですが、高機能なインタラクティブシェルとしてJupyter Notebookを使うととても便利です。 ブラウザ上で動くためコードのコピーアンドペーストなども容易ですし、ブラウザでコード実行が完結するというのは非常に手軽で、開発・デバッグ効率の向上に役立つでしょう。

GUIが必要なPython実行環境

Jupyter Notebookの目玉機能として、画像を直接描画することができます。 例えばWeb上をクローリングして、ダウンロードした画像ファイルをセル内に直接表示させるなどということができてしまいます。 また、Matplotlibと深く連携しており、グラフなどもインラインで描画することができるため、numpyを使ったデータマイニング系や理数系の計算とも相性が良く、非常に実用的に使えます。

メインのPython開発環境としても

ここまで、Jupyter Notebookのツールとしての使い道を挙げてきましたが、その高機能さはメインのPython開発環境として十分に通用するものです。 Jupyter Notebook上でコードを編集すると、その内容はリアルタイムでipynbファイル形式で保存されます。 そして各セルごとに独立してコードを管理することができ、ファイルをまたぐような開発も可能であるため、複数人での開発にも使うことができます。 gitなどでバージョン管理するのも、ipynbファイルそのものの管理はもちろん、セルごとに行う方法もあるため、モダンなプロジェクト管理にもある程度対応します。 何より、ブラウザからJupyter Notebookのページを開けば開発に参加できるので、とにかく技術的なコストを最小限に抑えて開発を行いたいという場合には、もっとも適する環境と言えるでしょう。

初心者が綺麗にコードを書くための練習に!

Jupyter Notebookの本来の使い方とは異なりますが、ブラウザで気軽にPythonを書けるJupyter Notebookを利用して、 「初心者が綺麗にコードを書く練習」 もできるでしょう。 初心者ほど、コードを書く際に長いものになってしまう可能性があります。 中規模以上のプロジェクトになると、メンテナンス性が悪くなるので、できれば機能を切り出してメソッド化するのが一般的です。 そんな時に、Jupyter Notebookを使って 「特定の機能だけを作る極小単位のメソッド」 を考える癖を付けると良いでしょう。 ある程度のソース規模になったプロジェクトから、部分的にメソッドとして切り出すのは難しいですが、始めから 「〇〇の機能だけを作ってテストする」 という位置づけでJupyter Notebookを利用すれば、初心者でもメソッド化が簡単にできるようになるでしょう。

Jupyter Notebookと似たようなソフトウェア・サービス

Jupyter Notebookと似たようなソフトウェア・サービス

Jupyter Notebookと似たようなソフトウェア・サービス

最近では、Jupyter Notebook以外にも類似のサービスが出てきています。

Pythonインタープリタ

コンソール上でPythonを直接実行すると表示されるインタラクティブシェルが、Pythonインタープリタです。 Python以外に何も入れずに使えるので、ちょっとしたテストや実験を行う程度ならこれで済ましているという人もいるかもしれません。 ただし本当に基本的な機能しか無く、コード補完もしてくれませんし、コピーアンドペーストの挙動もコンソールによってまちまちです。 機能面で他のソフトウェアに勝っている点はありませんので、より高機能で便利なソフトウェアに乗り換えたほうがいいでしょう。 特に、次に紹介するIPythonは同じくコンソールで操作するシェルであり、ほとんど上位互換的な存在となっています。

IPython

Pythonのモジュールとして用意されている高機能なインタラクティブシェルがIPythonです。 コンソールで動くインタラクティブ環境としては高機能で、カラー表示で色分けもなされますし、簡単なコード補完も完備、パフォーマンス測定の独自機能も備えるなど、非常に便利なツールです。 LinuxやMac等でコンソール環境を整えている人には必携のツールと言えるでしょう。 ただし、Jupyter Notebookのように画像を含む出力を直接扱うことはできません。 IPythonとJupyter Notebookでどちらかを選択するという関係性ではなく、両方入れて使い分けるのがいいでしょう。

Google Colab

今急激に利用者が増えているのがGoogle Colabです。 これはJupyter Notebookと似ているというより、GoogleがクラウドホスティングしているJupyter Notebookという関係性です。 Googleアカウントでログインすることで使うことができ、パソコンに何もインストールすることなく、クラウド上のJupyter Notebook環境を使うことができます。 非常に手軽で便利ですので、GoogleアカウントがあるならばGoogle ColabからPythonを始めるという選択肢が最有力になってくるかもしれません。 また、Googleドライブ上のワードファイルやエクセルファイルを読み込んだり編集したりできるなど、Googleサービス同士での連携機能も追加されています。 オフィス系ファイルをPythonで読み込む場合、通常はサードパーティのモジュールに頼る以外に方法がありませんので、GoogleドライブやGoogleドキュメントとセットで、Google Colab上で編集するのがもっとも楽で安心です。

Jupyter Notebookのビジネスでの役立て方

Jupyter Notebookのビジネスでの役立て方

Jupyter Notebookのビジネスでの役立て方

Jupyter Notebookを活用することで、速やかにプロジェクトを立ち上げてチームで共有することができるようになります。 メインの開発環境として使うのでもいいですし、一部のコードをセルに上げて共有するなど、チームのスキルに合わせて幅広く使うことができます。 Jupyter Notebookを共有の場として使う方法は非常に汎用性が高く、様々な使い道が考えられます。 例えば社外のプログラマーを迎えるとき、Jupyter Notebookを外部公開してURLを送信すれば、それだけで開発に参加してもらうことができ、非常に簡単です。 また、非プログラマーと進捗を共有したいときなども、Jupyter Notebookを介せばグラフィカルに状況を伝えられるので、コミュニケーションがスムーズに進みます。 このように、ビジネスを加速し円滑化するためのツールとしてJupyter Notebookは非常に役立つものであり、それだけに多くのPythonプロジェクトではJupyter Notebookが活用されているのです。

Pythonの開発もAMELAに

Pythonの開発もAMELAに

Pythonの開発もAMELAに

今回は、人気のプログラミング言語であるPythonの統合開発環境であるJupyter Notebookについて見てきました。 様々な統合開発環境が出てくることによって、エンジニアとしては非常に開発効率が高くなる一方で、あまり色々なものを使いすぎると、 「プロジェクトごとに利用している環境が違いすぎて困惑する」 といった事も起こります。 特に昨今は、1つのプロジェクトの発案からリリースまでの期間は短くなっていると言われており、エンジニアにも対応力が求められる時代になりました。 人気の言語で、且つ比較的簡単に初心者がスタートできるPythonですが、一方で能力の高い実務で使えるレベルのエンジニアが少ないとも言われています。 そんな時には是非AMELAにご相談ください。 きちんと能力のあるエンジニアが多数在籍しております。