IPython

IPython
原作者フェルナンド・ペレス[ 1 ]
開発者ブライアン・E・グレンジャー、ミン・ラガン=ケリー、ポール・イワノフ、トーマス・クライバー、マティアス・ブッソニエ
初回リリース2001年[ 1 ] (2001年
安定版リリース
9.8.0 [ 2 ] ウィキデータで編集する / 2025年12月3日 (2025年12月3日
リポジトリ
書かれたPythonJavaScriptCSSHTML
オペレーティング·システムクロスプラットフォーム
タイプシェル
ライセンスBSD
WebサイトiPython .org ウィキデータで編集する

IPython(Interactive Python)は、複数のプログラミング言語でインタラクティブなコンピューティングを実現するコマンドシェルです。元々はPythonプログラミング言語用に開発され、イントロスペクションリッチメディア、シェル構文、タブ補完、履歴機能を備えています。IPythonは以下の機能を提供します。

  • 対話型シェル (ターミナルおよびQtベース)。
  • コード、テキスト、数式、インライン プロット、その他のメディアをサポートするブラウザ ベースのノートブック インターフェイス。
  • インタラクティブなデータ視覚化と GUI ツールキットの使用をサポートします。
  • 独自のプロジェクトにロードできる、柔軟で埋め込み可能なインタープリター。
  • 並列コンピューティング用のツール。

IPythonはNumFOCUSの財政支援を受けているプロジェクトです。[ 3 ]

並列コンピューティング

IPython の並列処理のアーキテクチャビュー

IPythonは、並列分散コンピューティングを実現するアーキテクチャに基づいています。IPythonは、並列アプリケーションを対話的に開発、実行、デバッグ、監視することを可能にするため、IPythonの頭文字の「I」(Interactive)は「対話型」を意味します。[ 4 ]このアーキテクチャは並列性を抽象化し、IPythonが様々な並列性スタイルをサポートできるようにしています。[ 5 ]例えば、以下のようなものです。

  • 単一プログラム、複数データ(SPMD)並列性
  • 複数プログラム、複数データ(MPMD)並列処理
  • MPIを使用したメッセージパッシング
  • タスクの並列処理
  • データ並列性
  • これらのアプローチの組み合わせ
  • カスタムユーザー定義アプローチ

IPython 4.0のリリースにより、並列計算機能はオプションとなり、ipyparallel Pythonパッケージとしてリリースされました。ipyparallelの機能のほとんどは、Daskなどのより成熟したライブラリによってカバーされています。

IPythonは、 NumPySciPyなどのSciPyスタック[ 6 ]ライブラリを頻繁に利用します。これらのライブラリは、多くのScientific Pythonディストリビューションの1つと一緒にインストールされることが多いです。[ 6 ] IPythonは、 SciPyスタックのいくつかのライブラリ、特にmatplotlibとの統合を提供し、 Jupyterノートブックで使用するとインライングラフを生成します。Pythonライブラリは、IPython固有のフックを実装して、豊富なオブジェクトの表示をカスタマイズできます。例えば、 SymPyは、IPythonコンテキスト内で使用される場合、数式をLaTeXでレンダリングするように実装しており、PandasデータフレームはHTML表現を使用します。[ 7 ]

その他の機能

IPythonはTkinterPyGTKPyQt / PySidewxPythonとの非ブロッキングなインタラクションを可能にします(標準の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にアクセスできます。

プロジェクト・ジュピター

古いIPythonノートブックインターフェース

2014年、IPythonの作者フェルナンド・ペレスはIPythonからスピンオフしたプロジェクト「Project Jupyter」を発表しました。[ 10 ] IPythonはJupyterのPythonシェルとカーネルとして存在し続けましたが、ノートブックインターフェースと他の言語に依存しないIPythonの部分はJupyterの名前の下に移行されました。[ 11 ] [ 12 ] Jupyterは言語に依存せず、その名前はJupyterがサポートするコアプログラミング言語であるJuliaPythonRに由来しています。[ 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 ]

参照

参考文献

  1. ^ a b「IPythonノートブック:歴史的回顧」 Fernando Perezのブログ。2012年1月8日。
  2. ^ "ipython 9.8.0" . 2025年12月3日. 2025年12月30日閲覧
  3. ^ 「NumFOCUSスポンサープロジェクト」 NumFOCUS 2021年10月25日閲覧
  4. ^ヘレン・シェン (2014). 「インタラクティブノートブック:コードの共有」 . Nature . 515 (7525): 151– 152. Bibcode : 2014Natur.515..151S . doi : 10.1038/515151a . PMID 25373681 . 
  5. ^ 「並列コンピューティングのための IPython の使用 - IPython ドキュメント」
  6. ^ a b「SciPyスタック」
  7. ^ 「印刷 — SymPy 1.1 ドキュメント」 . docs.sympy.org . 2018年4月11日閲覧
  8. ^ McKinney, Wes (2012). 「第3章」 . Pythonによるデータ分析. ISBN 978-1-449-31979-3
  9. ^ 「IPython 5.0のリリース – Jupyterブログ」 。Jupyterブログ2016年7月8日。 2018年4月11日閲覧
  10. ^ 「プロジェクト Jupyter // スピーカーデッキ」
  11. ^ 「ノートブック、Qtコンソール、その他多くの機能がJupyterの一部になりました」。GitHub 2021年10月17日。
  12. ^ 「The Big Split™」 2017年8月28日。
  13. ^ “Jupyter ロゴ · jupyter/デザイン Wiki” . GitHub
  14. ^ a bサマーズ、ジェームズ. 「科学論文は時代遅れ」 .アトランティック誌. 2018年4月10日閲覧
  15. ^ Koziol, Conrad (2005年9月12日). 「Introducing IPython」 . NewsForge. 2012年6月7日時点のオリジナルよりアーカイブ2012年6月14日閲覧。
  16. ^ 「IPython プレゼンテーション」
  17. ^ 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日閲覧 
  18. ^ 「scipyメーリングリストでのお知らせ」2016年3月5日時点のオリジナルよりアーカイブ2012年12月12日閲覧。
  19. ^ 「IPython のお知らせ」 .
  20. ^ 「Dr. Dobb's 誌の Jolt Productivity Award に関する記事」
  21. ^ 「カリフォルニア大学バークレー校とカリフォルニア工科大学(Cal Poly)が科学計算とデータサイエンスのためのオープンソースソフトウェアを拡大​​・強化するために600万ドルを調達」 。 2015年8月13日閲覧
  22. ^ 「最近のソフトウェアシステム賞ニュース」
  23. ^ 「Jupyter が ACM ソフトウェア システム賞を受賞」