マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Jupyter Notebook

【OSS情報アーカイブ】Jupyter Notebook

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

コンテンツ

「Jupyter Notebook」とは

概要

Jupyter Notebook(ジュピターノートブック)とは、インタラクティブコンピューティング用Webベースノートブック環境です。

ノートブック形式で段階的にプログラムを実行し、データ分析作業を行える対話型ブラウザ実行環境として利用できます。

基本説明

Jupyter Notebookは、コンソールベースアプローチをインタラクティブコンピューティングに拡張し、「コード開発」「文書化」「実行」「結果伝達」など、計算プロセス全体をキャプチャするのに適したWebベースのアプリケーションを提供します。

「ノートブック」と呼ばれるドキュメントを作成し、「プログラムの記述/実行/共有」や「メモの作成/保存/共有」が可能で、セルと呼ばれるスペースにコードを入力し実行します。

ユースケース

■共同研究

Jupyter Notebookは「プログラム」「実行結果」「メモ」を簡単に作成し保存できるため、「過去作業内容の振り返り」「チームメンバーへの作業結果共有」「スクール形式での授業/研修」など、共同研究での利用に向いています。

■データ分析タスク

Jupyter Notebookは、特に、結果の保存や共有に重きを置くデータ分析タスクでも活用できます。

「データの消去/変換」「数値シミュレーション」「統計モデリング」「データ視覚化」「機械学習」などに利用できます。

経緯

「Jupyter」の名称は、対応している主要言語「Julia」+「Python」+「R」の頭文字をつなげて名付けられました。

「Jupyter Notebook」はかつて、Python専用のNotebook「IPython Notebook」という名称でしたが、Python以外でも活用できることから改名されました。

オフィシャルサイト情報

■オフィシャルサイト

→Project Jupyter(jupyter.org)

■主要開発元

Jupyter Notebookは、Jupyterプロジェクトが中心となり開発が進められています。

Jupyterプロジェクトは、数十ものプログラミング言語でのインタラクティブコンピューティングのための「オープンソースソフトウェア」「オープン標準」「サービス」を開発するために活動しています。

→Project Jupyter →About Us

■ライセンス情報

Jupyter Notebookのライセンスは「修正BSDライセンス」です。

詳細について、こちらを参照ください。
→GitHub →jupyter/notebook →COPYING.md

■ダウンロード

→Project Jupyter →Installing the Jupyter Software

同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Spyder」「IPython」など。

主要コンポーネント

Jupyter Notebookは、以下の2つのコンポーネントを組み合わせて構成されています。

■Webアプリケーション

概要

Webアプリケーションコンポーネントは、「説明テキスト」「数学」「計算」「リッチメディア出力」を組み合わせたドキュメントのインタラクティブオーサリングのためのブラウザベースのツールです。

主な機能

・ブラウザー内コード編集機能—自動構文強調表示、インデント、タブ補完、イントロスペクション
・コード実行機能
・リッチメディア表現による計算結果表示機能—HTML、LaTeX、PNG、SVG
・Markdownマークアップ言語サポート
・数学表記機能—LaTeX
・ネイティブレンダリング機能—MathJax など

■ノートブックドキュメント

ノートブックドキュメントは完全な計算記録として機能し、「計算の入力と出力」「説明テキスト」「数学」「画像」「オブジェクトのリッチメディア表現」など、Webアプリケーションで表示されるすべてのコンテンツの表現が含まれます。

「インタラクティブセッションの入力と出力」「コードに付属しているが実行を目的としていない追加テキスト」も含まれます。

これらのドキュメントは内部的にはプレーンテキスト形式のJSONファイルであるため、バージョン管理により共有できます。

非言語依存

Jupyter Notebookは、Project Jupyter用の言語に依存しないHTMLノートブックアプリケーションです。

オープンスタンダード

Jupyter Notebookは、インタラクティブコンピューティング用の一連のオープンスタンダードに基づいています。

開発者は「HTML」「CSS」「JSON」などのオープンスタンダードを活用して、組み込みのインタラクティブコンピューティングでカスタマイズされたアプリケーションを構築できます。

■オープンドキュメント形式

Jupyter Notebookは、JSONに基づいたオープンドキュメント形式です。

これらには、「コード」「説明テキスト」「方程式」「豊富な出力」など、ユーザーセッションの完全な記録が含まれています。

■ネットワークプロトコル「Interactive Computing Protocol」

Jupyter Notebookは、「ZMQ」および「WebSocket」を介したJSONデータに基づいたオープンネットワークプロトコル「Interactive Computing Protocol」を使用して、Jupyterカーネルと通信します。

■Jupyterカーネル

Jupyterカーネルは、特定のプログラミング言語でインタラクティブコードを実行し、ユーザーに出力を返すプロセスです。

カーネルは「タブ補完」や「イントロスペクション」などのリクエストにも応答します。

サポート言語

Jupyter Notebookは、「Python」「R言語」「Julia」「Scala」を含む、40以上のプログラミング言語に対応しています。

「Jupyter Notebook」のセルコーディング

概要

Jupyter Notebookにおいて、プログラムやメモは、すべて「セル」と呼ばれる単位で記述します。

セルは複数行のテキスト入力フィールドであり、セル単位で実行できます。

セルの実行動作はセルのタイプによって決まり、「コードセル」「マークダウンセル」「生セル」の3種類があります。すべてのセルはコードセルから始まり、利用したいセルタイプに変更して使用します。

コードセル

コードセルではプログラムを記述し実行できます。構文の強調表示やタブ補完が可能で、新しいコードの追記も可能です。

コードセルが実行されると、セルに含まれるコードがノートブックに関連付けられたカーネルに送信されます。このカーネルから返された結果は、セルの出力としてノートブックに表示されます。

出力はテキストに限定されず、「matplotlib図」「HTMLテーブル」など、多くの形式に対応しています。

マークダウンセル

マークダウンセルでは、テキストマークアップを実行する簡単な方法を提供する「マークダウン形式」でメモを記述できます。

リッチテキストを使用して、記述テキストとコードを交互に使用して、計算プロセスを文学的方法で文書化できます。

任意のHTMLコードを使用でき、「LaTeX表記法による数式」「リスト」「テーブル」「図」「リンク」なども表記できます。

マークダウンセルが実行されると、マークダウンコードは対応するフォーマットのリッチテキストに変換されます。

生セル

生セルは、出力を直接書き込むことができる場所を提供します。

生セルはノートブックによって評価されず、nbconvertを通過すると、未加工のセルは変更されずに宛先形式で表示されます。

「Jupyter Notebook」の主な機能

ノートブック共有機能

Jupyter Notebookでは、「メール」「Dropbox」「GitHub」「Jupyter Notebook Viewer」などを通じて他のユーザーと共有できます。

■Jupyter Notebook Viewer

「Jupyter Notebook Viewer」は、Jupyter NotebookファイルのURLを入力すると、そのノートブックを静的なHTML Webページとしてレンダリングし、他のユーザーと共有できるWebアプリケーションです。

「GitHubリポジトリなどのノートブックのコレクション参照」「スライド」「スクリプト」などのレンダリングもサポートしています。

「Jupyter Notebook Viewer」を利用すると、Jupyter Notebookをインストールしていない他のユーザーと簡単に共有できるメリットがあります。

→nbviewer(nbviewer.jupyter.org)

インタラクティブ出力機能

Jupyter Notebookでは、各言語のライブラリを利用して、プログラムの出力結果をさまざまな形で表現できます。

・マークダウン
・HTML
・PDF
・画像
・ビデオ
・LaTeX
・カスタムMIME
・pyファイル(Pythonソースコード部分のみ) など

nbconvertコマンドを使用することで、さまざまな静的形式にエクスポートできます。

ビッグデータ統合機能

Jupyter Notebookを大規模データ処理ツールと連携することで、効率的なデータ解析を実行できます。

・Python
・R言語
・Scala
・Apache Spark
・Pandas
・scikit-learn
・ggplot2
・TensorFlow など

「Jupyter Notebook」の関連プロジェクト

Webベースインタラクティブ開発環境「JupyterLab」

JupyterLabは、「Jupyter Notebook」「各種コード」「各種データ」をサポートするインタラクティブな開発環境です。

JupyterLabはモジュール式であるため、柔軟な拡張性を備えています。

「データサイエンス」「サイエンスコンピューティング」「機械学習」などの幅広いワークフローをサポートするために、自由にユーザーインターフェースを配置できます。

→jupyterlab.readthedocs.io →Docs →JupyterLab Documentation

Jupyterノートブック用マルチユーザーサーバ「JupyterHub」

JupyterHubは、Jupyter Notebookサーバの複数インスタンスを生成しプロキシするマルチユーザーハブとして、複数のユーザーにJupyter Notebook環境を提供します。

「学生のクラス」「企業のデータサイエンスグループ」「科学研究プロジェクトグループ」などで活用できます。

→jupyterlab.readthedocs.io →Docs →JupyterHub

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【OSS情報】LLMトレーニング用ライブラリ「 GPT-NeoX 」📚

OSS情報

2024.07.18

【OSS情報】LLMトレーニング用ライブラリ「 GPT-NeoX 」📚

「 GPT-NeoX 」は、GPU上で大規模言語モデル(LLM)を効率的にトレーニングするためのライブラリです。NVIDIAのモデルを基に独自の最適化が加えられ、オートレグレッシブ言語モデルのトレーニング手法を集約しています。

【OSS情報】WebベースAPI開発スイート「 Hoppscotch 」🌐

OSS情報

2024.07.04

【OSS情報】WebベースAPI開発スイート「 Hoppscotch 」🌐

「 Hoppscotch 」は、オープンソースのAPI開発エコシステムで、使いやすさとアクセシビリティを重視した軽量なWebベースのスイートです。無料版と有料版があり、PostmanやInsomniaの代替として利用可能です。

経営活動に活用できる 原価管理 を実現するには? 〜製造業の現実的な課題に向き合い、現場視点から改善する原価管理手法の必達プロセスをご紹介〜

ウェビナーまとめ

2024.05.15

経営活動に活用できる 原価管理 を実現するには? 〜製造業の現実的な課題に向き合い、現場視点から改善する原価管理手法の必達プロセスをご紹介〜

2024年3月12日に三菱電機ITソリューションズ株式会社とアットストリームパートナーズ合同会社の共催で、組立加工製造業向けのセミナー「なぜか高くなる原価を管理する 不確実性の時代を乗り切るためのコスト戦略とは」が開催されました。本セミナーでは、製造業における原価管理の現状と改善手法について深く掘り下げ、経営活動への具体的な活用方法を提示しました。今回は、その講演の要点をお伝えします。