web-dev-qa-db-ja.com

Python科学計算のための分布と環境

この質問が広すぎる場合は、事前にお詫び申し上げます。私はMATLABの世界から来ており、Pythonの経験は比較的少ないです。

いくつかのPythonベースの環境と科学計算用のディストリビューションについて読んだ後、私はまだソリューションの展望や次のようないくつかの注目すべきパッケージ間の正確な関係を完全には理解していないと感じています。

すなわち:

  • 上記のパッケージのいずれかが同様の機能を提供しますか?それらは互いに補完し合っていますか?
  • それらのいずれかのインストールには、他のいずれかのインストールが含まれるか、または必要ですか?もしそうなら、どれがどれを含むか、どれを必要としますか?

それほど重要ではありませんが、同様の機能を提供する上記のパッケージと同様の他のパッケージはありますか?

前もって感謝します

21

Pythonを使用した科学計算では、単純なバニラ言語を採用し、MATLABの機能のいくつかの側面を実装する一連のモジュールを追加しています。そのため、Python科学プログラミングの経験は、少しまとまりのないc.fです。 MATLAB。ただし、言語としてのPythonははるかにクリーンです。だからそうなるのです。

Pythonでの科学計算に必要な基本的なモジュールはNumpyMatplotlibSciPyであり、3Dプロットを行う場合は、Mayavi/VTKです。これらのモジュールはすべてNumpyに依存しています。

NumpyMATLAB配列と同様に動作する新しい配列型を実装します(つまり、高速ベクトル計算)。また、これらの計算を実行するための関数の負荷も定義します。これらの関数は通常、MATLABの同様の関数と同じ名前が付けられています。

MatplotlibMATLABと非常によく似たコマンドで2次元プロットを可能にします。 Matplotlibは、pylabも定義します。これは、1回のインポートでほとんどのNumpy関数とMatplotlib関数をグローバル名前名に取り込むモジュールです。これは、名前空間プレフィックスを大量に入力したくない高速でインタラクティブなスクリプトに役立ちます。

SciPyは、科学者に役立つSciPy傘下に配置されたPythonモジュールのコレクションです。フィッティングルーチンはSciPyモジュールで提供されます。 NumpyはScipyの一部です。

Spyderは、MATLAB IDEを大まかにエミュレートしようとするデスクトップIDE(QTに基づく)です。これはPython-XYディストリビューションの一部です。

IPythonは、拡張されたインタラクティブなPythonシェルを提供します。これは、コードを試したり、スクリプトを実行したり、結果を操作したりするのに役立ちます。従来のコンソールだけでなく、Webインターフェイスにも提供できるようになりました。また、SpyderIDEにも組み込まれています。

ディストリビューション

これらすべてのモジュールをコンピューターで実行するには時間がかかる可能性があるため、それら(および他の多くのモジュール)をパッケージ化するディストリビューションがいくつかあります。

Python-XYWinPythonEnthoughtおよび最近Anacondaは、すべてのコアを含むすべての完全なパッケージディストリビューションですEnthoughtにはSpyderは付属していませんが、モジュール。

Sageは、Webまたはコマンドラインを介して提供される別のプログラミング環境であり、他の多くのモジュールを含む完全なパッケージとして提供されます。従来は、Linuxのインストールに基づくVMWareイメージとして提供されていました。 Sage環境でPythonを記述していますが、通常のPythonプログラミングとは少し異なり、Pythonに基づいて独自の言語と方法論を定義しています。

Windowsを使用している場合は、WinPythonをインストールします。 ScipyやSpyder(Python IMHOのMATLABの最良の代替品)を含む必要なものすべてをインストールします。スタンドアロンとして設計されているため、Pythonの他のインストールに干渉することはありません。システム上で。 OSXを使用している場合は、おそらくEnthoughtが最善の方法です-Spyderは、たとえば、 MacPorts。 Linuxの場合、コンポーネント(Numpy、SciPy、Spyder、Matplotlib)を個別にインストールできます。

私は個人的に、Python '内部に隠された'を操作するSageの方法が好きではありませんが、あなたはそれを好むかもしれません。

33
Brendan

質問のそれほど重要でない部分について:

  • Anaconda は、IPython、Spyderに付属するもう1つの注目すべきフルフレッチディストリビューション(Enthought and Sageに類似)です...また、pythonバージョン/環境を簡単に切り替えることができます。
  • PyCharm は、私がよく使用するもう1つの注目すべきIDEです。
4
jolvi

このリンクは役に立つかもしれません: https://www.cfa.harvard.edu/~ebresser/python/

ハーバード大学の天体物理学者のページです。これは、OS-X上で誰かがITT-VIS IDLからpythonに切り替えるという視点を提供します(ただし、ほとんどのヒントは他のオペレーティングシステムでも機能します)。

編集:ページが削除されたようです。科学者/エンジニアのためのpythonの代替の良い紹介はこのドキュメントにあります(大きなPDF警告): http://stsdas.stsci .edu/perry/pydatatut.pdf これが削除されないことを願っています!

2
PhilMacKay