| IPython | |
|---|---|
IPythonシェル | |
| 原作者 | フェルナンド・ペレス[ 1 ] |
| 開発者 | ブライアン・E・グレンジャー、ミン・ラガン=ケリー、ポール・イワノフ、トーマス・クライバー、マティアス・ブッソニエ |
| 初回リリース | 2001年[ 1 ] (2001年) |
| 安定版リリース | |
| リポジトリ | |
| 書かれた | Python、JavaScript、CSS、HTML |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | シェル |
| ライセンス | BSD |
| Webサイト | iPython |
IPython(Interactive Python)は、複数のプログラミング言語でインタラクティブなコンピューティングを実現するコマンドシェルです。元々はPythonプログラミング言語用に開発され、イントロスペクション、リッチメディア、シェル構文、タブ補完、履歴機能を備えています。IPythonは以下の機能を提供します。
- 対話型シェル (ターミナルおよびQtベース)。
- コード、テキスト、数式、インライン プロット、その他のメディアをサポートするブラウザ ベースのノートブック インターフェイス。
- インタラクティブなデータ視覚化と GUI ツールキットの使用をサポートします。
- 独自のプロジェクトにロードできる、柔軟で埋め込み可能なインタープリター。
- 並列コンピューティング用のツール。
IPythonはNumFOCUSの財政支援を受けているプロジェクトです。[ 3 ]
並列コンピューティング

IPythonは、並列分散コンピューティングを実現するアーキテクチャに基づいています。IPythonは、並列アプリケーションを対話的に開発、実行、デバッグ、監視することを可能にするため、IPythonの頭文字の「I」(Interactive)は「対話型」を意味します。[ 4 ]このアーキテクチャは並列性を抽象化し、IPythonが様々な並列性スタイルをサポートできるようにしています。[ 5 ]例えば、以下のようなものです。
- 単一プログラム、複数データ(SPMD)並列性
- 複数プログラム、複数データ(MPMD)並列処理
- MPIを使用したメッセージパッシング
- タスクの並列処理
- データ並列性
- これらのアプローチの組み合わせ
- カスタムユーザー定義アプローチ
IPython 4.0のリリースにより、並列計算機能はオプションとなり、ipyparallel Pythonパッケージとしてリリースされました。ipyparallelの機能のほとんどは、Daskなどのより成熟したライブラリによってカバーされています。
IPythonは、 NumPyやSciPyなどのSciPyスタック[ 6 ]ライブラリを頻繁に利用します。これらのライブラリは、多くのScientific Pythonディストリビューションの1つと一緒にインストールされることが多いです。[ 6 ] IPythonは、 SciPyスタックのいくつかのライブラリ、特にmatplotlibとの統合を提供し、 Jupyterノートブックで使用するとインライングラフを生成します。Pythonライブラリは、IPython固有のフックを実装して、豊富なオブジェクトの表示をカスタマイズできます。例えば、 SymPyは、IPythonコンテキスト内で使用される場合、数式をLaTeXでレンダリングするように実装しており、PandasデータフレームはHTML表現を使用します。[ 7 ]
その他の機能
IPythonはTkinter、PyGTK、PyQt / PySide、wxPythonとの非ブロッキングなインタラクションを可能にします(標準のPythonシェルはTkinterとのインタラクションのみを許可します)。IPythonは非同期ステータスコールバックやMPIを使用して並列コンピューティングクラスターを対話的に管理できます。IPythonはシステムシェルの代替としても使用できます。[ 8 ]デフォルトの動作はUnixシェルとほぼ同じですが、カスタマイズが可能で、ライブPython環境でコードを実行できる柔軟性があります。
Python 2のサポート終了
IPython 5.x (Long Time Support) シリーズは、Python 2をサポートする最後のIPythonバージョンです。IPythonプロジェクトは、Python 3 Statementに最初に参加したプロジェクトの1つとして、2020年以降はPython 2をサポートしないことを誓約しました[ 9 ]。そのため、6.xシリーズはPython 3以降とのみ互換性があります。ただし、IPythonカーネルとJupyter Notebookサーバーを異なるバージョンのPythonで実行することは可能であり、ユーザーは新しいバージョンのJupyterでPython 2にアクセスできます。
プロジェクト・ジュピター

2014年、IPythonの作者フェルナンド・ペレスはIPythonからスピンオフしたプロジェクト「Project Jupyter」を発表しました。[ 10 ] IPythonはJupyterのPythonシェルとカーネルとして存在し続けましたが、ノートブックインターフェースと他の言語に依存しないIPythonの部分はJupyterの名前の下に移行されました。[ 11 ] [ 12 ] Jupyterは言語に依存せず、その名前はJupyterがサポートするコアプログラミング言語であるJulia、Python、Rに由来しています。[ 13 ]
Jupyter Notebook(旧称IPython Notebook)は、Jupyterノートブックを作成、実行、可視化するためのWebベースのインタラクティブな計算環境です。Maple、Mathematica、SageMathといった他のプログラムのノートブックインターフェースに似ており、 1980年代にMathematicaで開発された計算インターフェーススタイルです。[ 14 ]数十言語の実行環境(カーネル)をサポートしています。Jupyter NotebookにはデフォルトでIPythonカーネルが付属していますが、2018年5月時点で100種類以上のJupyterカーネルが存在します。
メディアで
IPythonは、一般的なコンピューティングプレスやその他の一般的なメディアで言及されており、[ 15 ] [ 14 ]、科学会議でも存在感を示しています。[ 16 ]科学および工学の研究においては、 matplotlibの補助ツールとしてよく紹介されています。[ 17 ]
助成金と賞
2013年1月1日から、アルフレッド・P・スローン財団は2年間IPythonの開発を支援することを発表しました。[ 18 ]
2013 年 3 月 23 日、Fernando Perez はIPython により フリーソフトウェア財団フリーソフトウェア推進賞を受賞しました。
2013年8月、マイクロソフトはIPythonの継続的な開発を支援するために10万ドルを寄付しました。[ 19 ]
2014年1月、コーディングツール部門でドクター・ドブスからJolt生産性賞[ 20 ]を受賞しました。2015年7月には、ゴードン・アンド・ベティ・ムーア財団、アルフレッド・P・スローン財団、レオナ・M・アンド・ハリー・B・ヘルムズリー慈善信託から600万ドルの資金提供を受けました[ 21 ] 。
2018年5月には、2017 ACMソフトウェアシステム賞を受賞した。[ 22 ]この賞を受賞したチームとしては最大規模である。[ 23 ]
参照
参考文献
- ^ a b「IPythonノートブック:歴史的回顧」 Fernando Perezのブログ。2012年1月8日。
- ^ "ipython 9.8.0" . 2025年12月3日. 2025年12月30日閲覧。
- ^ 「NumFOCUSスポンサープロジェクト」 NumFOCUS 2021年10月25日閲覧。
- ^ヘレン・シェン (2014). 「インタラクティブノートブック:コードの共有」 . Nature . 515 (7525): 151– 152. Bibcode : 2014Natur.515..151S . doi : 10.1038/515151a . PMID 25373681 .
- ^ 「並列コンピューティングのための IPython の使用 - IPython ドキュメント」。
- ^ a b「SciPyスタック」。
- ^ 「印刷 — SymPy 1.1 ドキュメント」 . docs.sympy.org . 2018年4月11日閲覧。
- ^ McKinney, Wes (2012). 「第3章」 . Pythonによるデータ分析. ISBN 978-1-449-31979-3。
- ^ 「IPython 5.0のリリース – Jupyterブログ」 。Jupyterブログ。2016年7月8日。 2018年4月11日閲覧。
- ^ 「プロジェクト Jupyter // スピーカーデッキ」。
- ^ 「ノートブック、Qtコンソール、その他多くの機能がJupyterの一部になりました」。GitHub 。 2021年10月17日。
- ^ 「The Big Split™」 2017年8月28日。
- ^ “Jupyter ロゴ · jupyter/デザイン Wiki” . GitHub。
- ^ a bサマーズ、ジェームズ. 「科学論文は時代遅れ」 .アトランティック誌. 2018年4月10日閲覧。
- ^ Koziol, Conrad (2005年9月12日). 「Introducing IPython」 . NewsForge. 2012年6月7日時点のオリジナルよりアーカイブ。2012年6月14日閲覧。
- ^ 「IPython プレゼンテーション」。
- ^ Pérez, Fernando; Granger, Brian E. (2007). 「IPython: 対話型科学計算システム」(PDF) . Computing in Science & Engineering . 9 (3): 21– 29. Bibcode : 2007CSE.....9c..21P . doi : 10.1109/MCSE.2007.53 . S2CID 16637923. 2010年6月2日時点のオリジナル(PDF)からのアーカイブ。 2015年7月30日閲覧。
- ^ 「scipyメーリングリストでのお知らせ」。2016年3月5日時点のオリジナルよりアーカイブ。2012年12月12日閲覧。
- ^ 「IPython のお知らせ」 .
- ^ 「Dr. Dobb's 誌の Jolt Productivity Award に関する記事」。
- ^ 「カリフォルニア大学バークレー校とカリフォルニア工科大学(Cal Poly)が科学計算とデータサイエンスのためのオープンソースソフトウェアを拡大・強化するために600万ドルを調達」 。 2015年8月13日閲覧。
- ^ 「最近のソフトウェアシステム賞ニュース」。
- ^ 「Jupyter が ACM ソフトウェア システム賞を受賞」。