Project Jupyter

Project Jupyter
略称 Jupyter
設立 2015年2月 (9年前) (2015-02)
種類 nonprofit organization
目的 To support interactive data science and scientific computing across all programming languages.[1]
貢献地域 Worldwide
公用語 English
ウェブサイト jupyter.org
テンプレートを表示

Project Jupyter ([ˈpɪtər] ( 音声ファイル)) は、「数十のプログラミング言語にわたるインタラクティブコンピューティング英語版用のオープンソースソフトウェアオープンスタンダード、サービスを開発する」ために設立された非営利団体である。 Project Jupyterは、2014年にフェルナンド・ペレス英語版によってIPythonから分離された、数十の言語の実行環境をサポートしている。 Project Jupyterの名前は、Jupyterによってサポートされている3つのコアプログラミング言語であるJuliaPythonRへの言及であり木星の衛星の発見を記録したガリレオ・ガリレイのノートブックへのオマージュでもある 。 Project Jupyterは、インタラクティブコンピューティング製品であるJupyter Notebook、JupyterHub、およびJupyter Notebookの次世代バージョンであるJupyterLabを開発してサポートしている。

歴史

[編集]

2014年、 フェルナンド・ペレスは、 IPythonからProject Jupyterと呼ばれるスピンオフプロジェクトを発表した。 [2] IPythonは、JupyterのPythonシェルおよびカーネルとして存在し続けるが、 ノートブックやその他の言語に依存しない IPythonの部分は、Jupyterの名前で移動した。 [3] [4] Jupyterは言語に依存せず、 JuliaRHaskellRuby 、そしてもちろんIPythonカーネルを介したPythonなど、数十の言語の実行環境(カーネル)をサポートしている。 [5]

2015年、 GitHubとJupyterプロジェクトは、GitHubプラットフォームでのJupyterノートブックファイル形式(.ipynbファイル)のネイティブレンダリングを発表した。 [6] [7]

哲学

[編集]

Project Jupyterの運営理念は、 オープンソースソフトウェアの開発を通じて、すべてのプログラミング言語にわたってインタラクティブなデータサイエンスと科学計算をサポートすることである 。 Project Jupyterのウェブサイトによると、「Jupyterは常に100%オープンソースソフトウェアであり、誰でも自由に使用でき、修正BSDライセンスの自由な条件の下でリリースされる」。

製品

[編集]

Jupyter Notebook

[編集]

Jupyter Notebook (旧IPython Notebooks)はJupyter Notebookドキュメントを作成・共有するためのウェブアプリケーションである[8]。Jupyter Notebookドキュメントはプログラムコード、Markdownテキスト、数式、図式等を含むことができる[9]。これにより数値計算アルゴリズムとシミュレーション結果、統計解析コードとその実行結果グラフ、機械学習モデルと推論出力など、様々なプログラムとその結果を再実行可能な1つのドキュメントとして表現できる[10]

Jupyter Notebookの内部ではコードやテキストがNotebook Documentとして書かれ、Jupyter Notebookがそれを表示・編集可能にし、Notebook サーバーが保存・バリデーションをおこない[11]、Kernelが実際のコード実行をおこなう。口語的な「ノートブック」という語がこの内のどの段階を指すかは文脈による。

Jupyter Notebookは、 nbconvertライブラリまたは「jupyter nbconvert」コマンドを介して、Webインターフェースの「Download As」を介して、多くのオープンな標準出力形式( HTML 、 プレゼンテーションスライド 、 LaTeXPDFReStructuredTextMarkdownPython )に変換できる。シェルのラインインターフェイス。 Web上のJupyterノートブックドキュメントの視覚化を簡素化するために、nbconvertライブラリはNbViewerを介してサービスとして提供されており、公開されている任意のノートブックドキュメントへのURLを取得し、その場でHTMLに変換してユーザーに表示できる。

Jupyter Notebookインターフェース

Jupyter Notebookは、数多くの人気のあるオープンソースライブラリに基づいて構築されたブラウザベースのREPLを提供する。

Jupyter Notebookは多くのカーネルに接続できるため、多くの言語でプログラミングできる。 デフォルトでは、Jupyter NotebookにはIPythonカーネルが付属している。 2.3リリース[12] [13] (2014年10月)の時点で、 PythonRJuliaHaskellを含む多くのプログラミング言語用に、現在49のJupyter互換カーネルがある。 [14]

Notebookインターフェイスは、0.12リリース[15] (2011年12月)にIPythonに追加され、2015年にJupyter Notebookに名前が変更された(IPython 4.0 – Jupyter 1.0)。 Jupyter Notebookは、 MapleMathematica 、1980年代にMathematicaで生まれた計算インターフェーススタイルであるSageMathなどの他のプログラムのノートブックインターフェースに似ている。 [16] The Atlanticによると、Jupyterの関心はMathematicaノートブックインターフェイスの人気を2018年の初めに追い越した。

実行環境

[編集]

Jupyter Notebookはウェブアプリケーションであるため、動作にはサーバーが必要である(機能: HTTPサーバ、Notebook Server、Kernel)。ローカルマシンへのインストールからマネージドクラウドでの1クリック起動まで、様々な形式での実行環境が存在している。

  • ローカルインストール: Jupyter Notebookインストール、サーバー稼働、ブラウザ接続
  • Docker: Jupyter Docker Stacks(e.g. 1-liner docker run -p 8888:8888 jupyter/minimal-notebook
  • クラウド

ファイルフォーマット

[編集]

Jupyter Notebookドキュメントの形式は"Jupyter Notebook format"であり[17]、拡張子は.ipynbである[11]。カーネルや言語等のメタデータ、ソースに相当するcode cellsやMarkdown cells、実行結果を記述するセルなどからなる。ファイル形式はJSONであり、テキストデータとして記述・編集することが可能である。.ipynbを扱うリファレンス実装にはnbformatがある。

Jupyterカーネル

[編集]

Jupyterカーネルは、さまざまなタイプのリクエスト(コード実行、コード補完、検査)の処理と応答の提供を担当するプログラムである。 カーネルはネットワーク経由でZeroMQを使用してJupyterの他のコンポーネントと通信するため、同じマシンまたはリモートマシン上に置くことができる。 他の多くのノートブックのようなインターフェイスとは異なり、Jupyterでは、カーネルはそれらが特定のドキュメントに添付されていることを認識せず、一度に多くのクライアントに接続できる。 通常、カーネルは単一言語の実行のみを許可するが、いくつかの例外がある。

JupyterHub

[編集]

JupyterHub [18]は、Jupyter Notebooksのマルチユーザーサーバーである。 多くの単一のJupyter Notebookサーバーを生成、管理、プロキシすることにより、多くのユーザーをサポートするように設計されている。 [要出典] JupyterHubではサーバーの管理が必要であるが、Jupyo [19]などのサードパーティサービスは、クラウドでマルチユーザーJupyterノートブックをホストおよび管理することにより、JupyterHubの代替手段を提供する。

JupyterLab

[編集]

JupyterLabはProject Jupyterの次世代ユーザーインターフェースである。 柔軟で強力なユーザーインターフェイスで、クラシックなJupyter Notebookの使い慣れたすべてのビルディングブロック(ノートブック、ターミナル、テキストエディター、ファイルブラウザー、豊富な出力など)を提供する。 最初の安定版リリースは2018年2月20日に発表された。 [20]

Jupyter Book

[編集]

Jupyter Bookは、計算資料から美しい出版品質の本やドキュメントを作成するためのオープンソースプロジェクトである。これにより、ユーザーはMarkdownMySTと呼ばれるMarkdownの拡張バージョン、 MathJaxを使用したMaths&Equations、Jupyter Notebooks、 reStructuredText 、ビルド時に実行されているJupyterNotebooksの出力などを組み合わせてコンテンツを構築できる。

nbgraderは、Jupyterノートブックで割り当てを作成およびグレーディング(マーキング)するためのツールである。これにより、インストラクターは、Pythonまたはその他のサポートされているカーネルおよびテキスト応答でのコーディング演習を含む割り当てを作成できる。提出された課題は、自動的にマークを付けたり、手動で採点したり、両方を組み合わせたりすることができる。

Jupyter Widgets

[編集]

Jupyter Widgets はJupyter上にGUI(インタラクティブ制御)を構築するためのフレームワークである[21]。多くのJupyterフロントエンドはWebブラウザに類似した環境であり、JavaScript/HTML を介したリッチGUIを構築できるポテンシャルをもつ。Jupyter Widgetsはカーネルとフロントエンドの通信を仲介してJupyter上のGUIを実現するフレームワークとして機能する。

コラボラトリー

[編集]

報道

[編集]
  • 2016年2月11日、 LIGOのコラボレーションは重力波の最初の観測を発表した。 このコラボレーションにより、データを処理し、発見論文の数値を再現するためのPythonコードを含むJupyter Notebooksとともに生の科学データがリリースされた。 [22]
  • 2018年4月5日、 The Atlantic はThe Scientific Paper Is Obsoleteというタイトル記事を公開した。この記事では、科学出版の将来におけるJupyter NotebookとMathematicaノートブックの役割について説明した。 [16] この記事は、経済学者ポール・ロマーを含む著名な科学者や学者からの反応につながった。 [23]

助成金と賞

[編集]

関連項目

[編集]

参考文献

[編集]
  1. ^ “Project Jupyter - About Us”. (2018年4月20日). https://jupyter.org/about 2018年5月3日閲覧。 
  2. ^ Project Jupyter // Speaker Deck”. 2018年5月3日閲覧。
  3. ^ The Notebook, Qt console and a number of other pieces are now parts of Jupyter”. 2018年5月3日閲覧。
  4. ^ The Big Split™”. 2018年5月3日閲覧。
  5. ^ Project Jupyter | Home”. 2018年5月3日閲覧。
  6. ^ sshirokov (2015年5月7日). “GitHub + Jupyter Notebooks = <3” (英語). The GitHub Blog. https://blog.github.com/2015-05-07-github-jupyter-notebooks-3/ 2018年4月10日閲覧。 
  7. ^ “Rendering Notebooks on GitHub – Jupyter Blog”. Jupyter Blog. (2015年5月7日). https://blog.jupyter.org/rendering-notebooks-on-github-f7ac8736d686 2018年4月10日閲覧。 
  8. ^ "The Jupyter Notebook is an open-source web application that allows you to create and share documents" Project Jupyter
  9. ^ "documents that contain live code, equations, visualizations and narrative text." Project Jupyter
  10. ^ "Uses include: data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more." Project Jupyter
  11. ^ a b "When you save it, this is sent from your browser to the notebook server, which saves it on disk as a JSON file with a .ipynb extension." Architecture - Jupyter Projects
  12. ^ What's new in IPython > Issues closed in the 2.x development cycle”. 2018年5月3日閲覧。
  13. ^ What's new in IPython > 2.0 Series”. 2018年5月3日閲覧。
  14. ^ Jupyter kernels > List of (some) IPython compatible kernels”. 2018年5月3日閲覧。
  15. ^ Notebook's announcement- 0.12 release note”. 2018年5月3日閲覧。
  16. ^ a b Somers, James. “The Scientific Paper Is Obsolete” (英語). The Atlantic. https://www.theatlantic.com/science/archive/2018/04/the-scientific-paper-is-obsolete/556676/ 2018年4月10日閲覧。 
  17. ^ "The official Jupyter Notebook format is defined with this JSON schema" nbformat
  18. ^ https://jupyter.org/hub
  19. ^ Jupyo | Jupyter notebooks for Python, R, Julia in the cloud”. jupyo.com. 2019年1月3日時点のオリジナルよりアーカイブ。2019年1月2日閲覧。
  20. ^ “JupyterLab is Ready for Users – Jupyter Blog”. Jupyter Blog. (2018年2月20日). https://blog.jupyter.org/jupyterlab-is-ready-for-users-5a6f039b8906 2018年5月4日閲覧。 
  21. ^ "Jupyter Widgets is primarily a framework to provide interactive controls" Jupyter Widgets. 2023-09-27閲覧.
  22. ^ LIGO Open Science Center” (英語). losc.ligo.org. 2018年5月4日閲覧。
  23. ^ Jupyter, Mathematica, and the Future of the Research Paper – Paul Romer” (英語). paulromer.net. 2018年4月15日閲覧。
  24. ^ Sloan Foundation Grant — IPython”. ipython.org. 2018年5月3日閲覧。
  25. ^ An Open Source Framework for Interactive, Collaborative and Reproducible Scientific Computing and EducationOpen Source Tools for Interactive, Collaborative and Reproducible Computing”. ipython.org. 2018年5月3日閲覧。
  26. ^ Perez (December 28, 2015). “IPython 2015 Final Report - Sloan Foundation”. ipython.org. May 3, 2018閲覧。
  27. ^ UC Berkeley and Cal Poly to Expand and Enhance Open-Source Software for Scientific Computing and Data Science | Helmsley Charitable Trust” (英語). helmsleytrust.org. 2018年5月3日閲覧。
  28. ^ Software System Award”. ACM Awards. Association for Computing Machinery. April 28, 2016閲覧。

外部リンク

[編集]