Jupyter Notebookとは何ですか?データ分析が容易になりました

ある時点で、私たち全員が自分の仕事を示す必要があります。ほとんどのプログラミング作業は、生のソースコードまたはコンパイルされた実行可能ファイルとして共有されます。ソースコードは完全な情報を提供しますが、「表示」よりも「伝える」方法で提供されます。実行可能ファイルはソフトウェアの機能を示していますが、ソースコードが付属している場合でも、その動作を正確に把握するのは難しい場合があります。

コードを表示して同じUIで実行できると想像してみてください。そうすれば、コードに変更を加えて、それらの変更の結果をリアルタイムで即座に表示できます。それがJupyterNotebookが提供するものです。 

Jupyter Notebookは、自分のプログラミング作業を簡単に表示し、他の人が参加できるようにするために作成されました。JupyterNotebookを使用すると、コード、コメント、マルチメディア、および視覚化を、ノートブックと呼ばれるインタラクティブなドキュメントに組み合わせて共有できます。 、再利用、および再加工。 

また、Jupyter NotebookはWebブラウザーを介して実行されるため、ノートブック自体をローカルマシンまたはリモートサーバーでホストできます。 

JupyterNotebookのメリット

もともとPython、R、およびJuliaで記述されたデータサイエンスアプリケーション用に開発されたJupyter Notebookは、あらゆる種類のプロジェクトであらゆる方法で役立ちます。

  • データの視覚化。 ほとんどの人は、データの視覚化、つまり一部のデータセットのレンダリングをグラフィックとして含む共有ノートブックを介して、JupyterNotebookに初めて触れます。Jupyter Notebookを使用すると、ビジュアライゼーションを作成できるだけでなく、それらを共有して、共有コードとデータセットをインタラクティブに変更することもできます。
  • コードシェア。 GitHubやPastebinなどのクラウドサービスはコードを共有する方法を提供しますが、それらはほとんどインタラクティブではありません。Jupyter Notebookを使用すると、コードを表示して実行し、結果をWebブラウザーに直接表示できます。
  • コードとのライブインタラクション。 JupyterNotebookのコードは静的ではありません。ブラウザで直接フィードバックを提供して、リアルタイムで段階的に編集および再実行できます。ノートブックには、コードの入力ソースとして使用できるユーザーコントロール(スライダーやテキスト入力フィールドなど)を埋め込むこともできます。
  • コードサンプルの文書化。コードがあり、それがどのように機能するかを行ごとに説明したい場合は、ライブフィードバックを使用して、JupyterNotebookに埋め込むことができます。何よりも、コードは完全に機能し続けます。説明とともにインタラクティブ機能を追加し、表示と通知を同時に行うことができます。

JupyterNotebookコンポーネント

Jupyter Notebookには、それぞれが個別のブロックに編成されたいくつかの種類の材料を含めることができます。

  • テキストとHTML。 プレーンテキスト、またはHTMLを生成するためにMarkdown構文で注釈が付けられたテキストは、いつでもドキュメントに挿入できます。CSSスタイルは、インラインで含めることも、ノートブックの生成に使用するテンプレートに追加することもできます。
  • コードと出力。Jupyter Notebookノートブックのコードは通常Pythonコードですが、Jupyter環境でRやJuliaなどの他の言語のサポートを追加することもできます。実行されたコードの結果はコードブロックの直後に表示され、コードブロックは好きな順序で、好きなだけ実行および再実行できます。 
  • 視覚化。 グラフィックとチャートは、Matplotlib、Plotly、Bokehなどのモジュールを介してコードから生成できます。出力と同様に、これらの視覚化は、それらを生成するコードの横にインラインで表示されます。ただし、必要に応じて外部ファイルに書き出すようにコードを構成することもできます。
  • マルチメディア。 Jupyter NotebookはWebテクノロジーに基づいて構築されているため、Webページでサポートされているすべてのタイプのマルチメディアを表示できます。それらをHTML要素としてノートブックに含めることも、IPython.displayモジュールを使用してプログラムで生成することもできます。
  • データ。データは.ipynb 、Jupyter Notebookノートブックを構成するファイルと一緒に別のファイルで提供することも、プログラムでインポートすることもできます。たとえば、ノートブックにコードを含めて、パブリックインターネットリポジトリからデータをダウンロードしたり、データベース経由でアクセスしたりできます。接続。

JupyterNotebookのユースケース

Jupyter Notebookの最も一般的な使用例は、データサイエンス、数学、およびデータや数式の視覚化を伴うその他の研究プロジェクトです。ただし、これら以外にも、次のようなユースケースがたくさんあります。

  • インタラクティブ性の有無にかかわらず、視覚化を共有します。 多くの場合、データの視覚化の結果を静止画像として共有しますが、それはある程度までしか役に立ちません。Jupyterノートブックを共有することで、ターゲットオーディエンスが飛び込んで遊ぶことができます。彼らはインタラクティブにデータを完全に理解することができます。
  • コードを使用してプロセスを文書化します。プログラミングの経験についてブログを書いている多くのプログラマーは、Jupyterノートブックに投稿を書いています。他の人はノートブックをダウンロードして演習を再現できます。
  • ライブラリまたはモジュールのライブドキュメント。Pythonモジュールのほとんどのドキュメントは静的です。Jupyterノートブックは、モジュールの動作を学習するためのインタラクティブなサンドボックスとして使用できます。ノートブックインターフェイスで適切に実行されるPythonモジュール(基本的に、stdoutその動作の一部として書き込むもの)は、この候補として適しています。
  • 一般的にコードとデータを共有します。 Jupyterノートブックとそれに関連するデータファイルを共有するために必要なのは、アーカイブにパックすることだけです。

JupyterLab

JupyterLabと呼ばれるJupyterNotebookの次世代ユーザーインターフェイスが利用可能になり、本番環境で使用できるようになりました。

一般提供を発表したブログ投稿で説明されているように、JupyterLabは従来のJupyter Notebookよりも順応性が高く、ユーザーはノートブック内およびノー​​トブック間でセルをドラッグアンドドロップし、ワークスペースを個別のタブとサブセクションに配置できます。コードはJupyterNotebookファイルだけでなくテキストファイルからも直接実行でき、コードとデータの両方に共通する多くのファイル形式をライブプレビューでレンダリングできます。

JupyterLabは、拡張機能を使用してカスタマイズして、新しいファイル形式のサポートを追加したり、インターフェイスを充実させたり、その他の追加機能をいくつでも提供したりして、JupyterNotebookよりもはるかに幅広いノートブックアプリケーションを実現できます。長期的な計画は、現在のJupyter NotebookインターフェイスをJupyterLabに置き換えることですが、JupyterLabが十分に安定していて信頼できることが証明された後でのみです。

JupyterNotebookの制限

Jupyter Notebookは強力で便利ですが、考慮に入れる必要のあるいくつかの制限があります。

  • ノートブックは自己完結型ではありません。これは、Jupyter Notebookを使用することの最大の欠点です。ノートブックには、使用する予定のライブラリとともに、Jupyterランタイムが必要です。自己完結型のJupyterNotebookを作成するための戦略はいくつかありますが、公式にはサポートされていません。ノートブックを実行するためのインフラストラクチャがすでに整っている人、またはセットアップを気にしない人(たとえば、Anaconda経由)にノートブックを配布することをお勧めします。
  • セッション状態を簡単に保存することはできません。 Jupyter Notebookで実行されているコードの状態は、JupyterNotebookのデフォルトのツールセットでは保存および復元できません。ノートブックをロードするたびに、その状態を復元するためにノートブック内のコードを再実行する必要があります。
  • インタラクティブなデバッグやその他のIDE機能はありません。 Jupyter Notebookは、Pythonの本格的な開発環境ではありません。IDEに期待される機能の多く(インタラクティブなデバッグ、コードの完了、モジュール管理など)は、IDEでは利用できません。