マジセミドライブ

ウェビナー関連のニュースや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

 

参考元サイト

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

この記事のタグ一覧

おすすめの記事

AIツール関連 記事リストポータル

AIツール

2023.10.05

AIツール関連 記事リストポータル

AI 関連の記事をまとめたポータルページです。

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

AIツール実験室

2023.12.27

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

各チャットAIの「添削能力」について比較確認をしています。 「ChatGPT4と同等の添削能力を発揮した無料チャットAI」にご注目ください。 また、 ChatGPTカスタマイズ機能「GPTs」を利用して作成した GPTs文章添削機能「添削師匠さん✍️」を紹介しています。 課金勢は試しに使ってみてください。

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。