Project Jupyter
略称
Jupyter 設立
2015年2月 (10年前) (2015-02 ) 種類
nonprofit organization 目的
To support interactive data science and scientific computing across all programming languages.[ 1] 貢献地域
Worldwide 公用語
English ウェブサイト
jupyter.org テンプレートを表示
Project Jupyter () は、「数十のプログラミング言語 にわたるインタラクティブコンピューティング (英語版 ) 用のオープンソースソフトウェア 、オープンスタンダード 、サービスを開発する」ために設立された非営利団体 である。 Project Jupyterは、2014年にフェルナンド・ペレス によってIPython から分離された、数十の言語の実行環境をサポートしている。 Project Jupyterの名前は、Jupyterによってサポートされている3つのコアプログラミング言語であるJulia 、 Python 、 R への言及であり木星の衛星 の発見を記録したガリレオ・ガリレイ のノートブックへのオマージュ でもある 。 Project Jupyterは、インタラクティブコンピューティング製品であるJupyter Notebook、JupyterHub、およびJupyter Notebookの次世代バージョンであるJupyterLabを開発してサポートしている。
歴史
2014年、 フェルナンド・ペレスは、 IPython からProject Jupyterと呼ばれるスピンオフプロジェクトを発表した。 [ 2] IPythonは、JupyterのPythonシェル およびカーネル として存在し続けるが、 ノートブックやその他の言語に依存しない IPythonの部分は、Jupyterの名前で移動した。 [ 3] [ 4] Jupyterは言語に依存せず、 Julia 、 R 、 Haskell 、 Ruby 、そしてもちろん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 、 プレゼンテーションスライド 、 LaTeX 、 PDF 、 ReStructuredText 、 Markdown 、 Python )に変換 できる。シェルのラインインターフェイス。 Web上のJupyterノートブックドキュメントの視覚化を簡素化するために、nbconvertライブラリはNbViewer を介してサービスとして提供されており、公開されている任意のノートブックドキュメントへのURLを取得し、その場でHTMLに変換してユーザーに表示できる。
Jupyter Notebookインターフェース
Jupyter Notebookは、数多くの人気のあるオープンソース ライブラリに基づいて構築されたブラウザベースのREPL を提供する。
Jupyter Notebookは多くのカーネルに接続できるため、多くの言語でプログラミングできる。 デフォルトでは、Jupyter NotebookにはIPythonカーネルが付属している。 2.3リリース[ 12] [ 13] (2014年10月)の時点で、 Python 、 R 、 Julia 、 Haskell を含む多くのプログラミング言語用に、現在49のJupyter互換カーネルがある。 [ 14]
Notebookインターフェイスは、0.12リリース[ 15] (2011年12月)にIPythonに追加され、2015年にJupyter Notebookに名前が変更された(IPython 4.0 – Jupyter 1.0)。 Jupyter Notebookは、 Maple 、 Mathematica 、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ドキュメントの形式は"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 は、計算資料から美しい出版品質の本やドキュメントを作成するためのオープンソースプロジェクトである。これにより、ユーザーはMarkdown 、 MyST と呼ばれるMarkdown の拡張バージョン、 MathJax を使用したMaths&Equations、Jupyter Notebooks、 reStructuredText 、ビルド時に実行されているJupyterNotebooksの出力などを組み合わせてコンテンツを構築できる。
nbgrader は、Jupyterノートブックで割り当てを作成およびグレーディング(マーキング) するためのツールである。これにより、インストラクターは、Pythonまたはその他のサポートされているカーネル およびテキスト応答でのコーディング演習を含む割り当てを作成できる。提出された課題は、自動的にマークを付けたり、手動で採点したり、両方を組み合わせたりすることができる。
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]
助成金と賞
関連項目
参考文献
^ “Project Jupyter - About Us” . (2018年4月20日). https://jupyter.org/about 2018年5月3日閲覧。
^ “Project Jupyter // Speaker Deck ”. 2018年5月3日閲覧。
^ “The Notebook, Qt console and a number of other pieces are now parts of Jupyter ”. 2018年5月3日閲覧。
^ “The Big Split™ ”. 2018年5月3日閲覧。
^ “Project Jupyter | Home ”. 2018年5月3日閲覧。
^ 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日閲覧。
^ “Rendering Notebooks on GitHub – Jupyter Blog” . Jupyter Blog . (2015年5月7日). https://blog.jupyter.org/rendering-notebooks-on-github-f7ac8736d686 2018年4月10日閲覧。
^ "The Jupyter Notebook is an open-source web application that allows you to create and share documents" Project Jupyter
^ "documents that contain live code, equations, visualizations and narrative text." Project Jupyter
^ "Uses include: data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more." Project Jupyter
^ 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
^ “What's new in IPython > Issues closed in the 2.x development cycle ”. 2018年5月3日閲覧。
^ “What's new in IPython > 2.0 Series ”. 2018年5月3日閲覧。
^ “Jupyter kernels > List of (some) IPython compatible kernels ”. 2018年5月3日閲覧。
^ “Notebook's announcement- 0.12 release note ”. 2018年5月3日閲覧。
^ 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日閲覧。
^ "The official Jupyter Notebook format is defined with this JSON schema" nbformat
^ https://jupyter.org/hub
^ “Jupyo | Jupyter notebooks for Python, R, Julia in the cloud ”. jupyo.com . 2019年1月3日時点のオリジナル よりアーカイブ。2019年1月2日閲覧。
^ “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日閲覧。
^ "Jupyter Widgets is primarily a framework to provide interactive controls" Jupyter Widgets . 2023-09-27閲覧.
^ “LIGO Open Science Center ” (英語). losc.ligo.org . 2018年5月4日閲覧。
^ “Jupyter, Mathematica, and the Future of the Research Paper – Paul Romer ” (英語). paulromer.net . 2018年4月15日閲覧。
^ “Sloan Foundation Grant — IPython ”. ipython.org . 2018年5月3日閲覧。
^ “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日閲覧。
^ Perez (2015年12月28日). “IPython 2015 Final Report - Sloan Foundation ”. ipython.org . 2018年5月3日閲覧。
^ “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日閲覧。
^ “Software System Award ”. ACM Awards . Association for Computing Machinery . 2016年4月28日閲覧。
外部リンク