科学的アプリケーション

コンテキスト

Pythonは、高性能な科学アプリケーションに頻繁に使用されています。それは書くことが容易で、うまくいくので、学問や科学プロジェクトで広く使われています。

その高性能な性質から、Pythonでの科学計算は、一般的に高速言語(CやFORTRANなど)で書かれた外部ライブラリを利用することがよくあります。使用される主なライブラリは、 NumPySciPyMatplotlib です。これらのライブラリについて詳しくは、Pythonのガイドの範囲を超えています。しかし、科学的なPythonエコシステムの包括的な紹介は、 Python Scientific Lecture Notes

ツール

IPython

IPython は、科学者に大きな関心を寄せている機能を提供するPythonインタープリタの拡張バージョンです。 インラインモード は、グラフィックスとプロットを端末に表示することができます(Qtベースのバージョン)。さらに、 ノートブック モードは、ウェブベースのPythonノートブックを生成するリテラートプログラミングと再現可能な科学をサポートしています。このノートブックでは、結果と追加のコメント(HTML、LaTeX、Markdown)の横にPythonコードのチャンクを保存することができます。ノートブックは、さまざまなファイル形式で共有してエクスポートすることができます。

ライブラリ

NumPy

NumPy は、高レベルの数学的関数のためにC(およびFORTRAN)で書かれた低レベルのライブラリです。 NumPyは、多次元配列や配列を操作する関数を使用して、Python上でより遅いアルゴリズムを実行する問題を巧みに克服します。 どのアルゴリズムも配列の関数として表現でき、アルゴリズムを素早く実行できます。

NumPyはSciPyプロジェクトの一部であり、基本的な要件だけを必要とする人はSciPyの残りの部分をインストールせずに使用できるように、別のライブラリとしてリリースされています。

NumPyは、Python 2.4から2.7.2および3.1以降のバージョンと互換性があります。

Numba

Numba はNumPy対応Pythonコンパイラ(Just-In-Time(JIT)専門コンパイラ)で、注釈付きPython(およびNumPy)コードをLLVM(Low Level Virtual Machine) 特別なデコレータを通して。 簡潔に言えば、Numbaは、実行時にネイティブに実行できるコードにLLVMを使用してPythonコードをコンパイルするシステムを使用します。

SciPy

SciPy はNumPyをより多くの数学的関数に使用するライブラリです。 SciPyはNumPy配列を基本的なデータ構造として使用し、線形代数、積分(微積分)、常微分方程式の解法、信号処理など、科学プログラミングのさまざまな一般的なタスクのモジュールを備えています。

Matplotlib

Matplotlib は、インタラクティブな2Dと3Dプロットを作成するための柔軟なプロットライブラリであり、原稿の質の高い数字として保存することもできます。 APIは多くの点で、 MATLAB を反映しており、MATLABユーザーのPythonへの移行を容易にしています。多くの例とそれらを再作成するソースコードは、 matplotlib gallery で利用できます。

Pandas

Pandas は、Numpyをベースにしたデータ操作ライブラリであり、データのアクセス、索引付け、マージ、およびグループ化を容易にするための多くの便利な機能を提供します。 主なデータ構造(DataFrame)は、R統計パッケージにあるものに近いです。 つまり、名前の索引付け、時系列操作、およびデータの自動整列を使用する異種データ表です。

Rpy2

Rpy2 はPythonからのR関数の実行と2つの環境間でのデータの受け渡しを可能にするR統計パッケージのPythonバインディングです。 Rpy2はオブジェクト指向の実装で、 Rpy バインディング。

PsychoPy

Rpy2 はPythonからのR関数の実行と2つの環境間でのデータの受け渡しを可能にするR統計パッケージのPythonバインディングです。 Rpy2は Rpy バインディングのオブジェクト指向の実装です。

リソース

科学的なPythonパッケージのインストールは、これらのパッケージの多くがコンパイルする必要があるPython C拡張として実装されるので、面倒なことがあります。この節では、サイエンスPythonパッケージのプリコンパイル済みでインストールが簡単なコレクションを提供する、さまざまないわゆる科学Pythonディストリビューションを紹介します。

Python拡張パッケージ用の非公式Windowsバイナリ

科学的コンピューティングを行う多くの人々がWindows上にありますが、科学的コンピューティングパッケージの多くは、このプラットフォームで構築してインストールすることは難しいことで有名です。 Christoph Gohlke しかし、多くの便利なPythonパッケージのWindowsバイナリのリストをコンパイルしました。パッケージのリストは、主に科学的なPythonリソースからより一般的なリストに成長しました。 Windowsの場合は、チェックアウトすることができます。

Anaconda

Continuum AnalyticsAnaconda Python Distribution を提供しています。これには一般的な科学Pythonパッケージと多くの パッケージは、データ分析と大きなデータに関連しています。 Anaconda自体は無料で、Continuumは独自のアドオンを多数販売しています。 アドオンの無料ライセンスは、学者や研究者が利用できます。

Canopy

Canopy は、 Enthought によって作成されたもう一つの科学的なPythonディストリビューションです。 限定された Canopy Express の亜種は無料で入手できますが、完全配布の場合はEnthoughtが請求します。 学者は無料ライセンスを利用できます。