web-dev-qa-db-ja.com

科学計算のためのPython(SciPy and NumPy))への移行

Python for Scientific Computingの使用に関するプレゼンテーションを読んでください。現在、MATLABを使用しています(学生ライセンスFTW、すぐに卒業すると期限切れになります)。

だから私は私がする必要があるすべての科学計算をそれらに依存することに関してどのように成熟したSciPyとNumPyが成熟しているのかと思っていました。利点は、無料であることです。私は主に信号処理、オーディオ、音響などのコンピューティングに焦点を当てています。

NumPyプロジェクトとSciPyプロジェクトは、より複雑な技術のサポートに関して進化していると想像できます。それで、彼らはどれだけ速く進化していますか、その背後に大きなコミュニティがありますか?

最後に、他の解決策がありますか

10
notthetup

つまり、Pythonは Matlabよりもはるかに優れた言語 であり、より一般的な言語機能を備えていますが、MatlabはPythonよりも完全な科学計算ツールセットを備えています。

OctaveにはPythonよりも完全な科学ツールがあり、Matlabに精通している場合は、Matlabに近い言語ですが、言語の欠点も共有しています。 OctaveとSciPyは無料ですが、Matlabは無料ではありません。

私は主に信号処理、オーディオ、音響などのコンピューティングに焦点を当てています。

私も、SciPyが不足していることに気づきました。いくつかの例:

  • ドキュメントが不十分であるか、多くの機能が存在しない
  • フィルター設計ツール 内部的に伝達関数表現に変換するため、高次フィルターは数値エラーの問題に悩まされます。 (修繕)
  • freqs のような他の関数はtf表現のみを受け入れますが、これも数値エラーの問題を引き起こします。
  • 2次セクション型表現のフィルターをサポートしていません
  • FFTはそれほど速くありません
  • Octave/Matlabの多くの関数はまだSciPyに存在していません GPLとBSDのライセンスのため、Octaveから直接変換できません
  • ...

しかし、私は今でもSciPyを好みます。なぜなら、この言語ははるかに使いやすく、必要なことのほとんどを行うからです。これは無料でオープンソースであり、活発に開発されており、Githubの「編集」を押すだけで簡単に貢献できます。私は主にこれを使用して信号処理を学習および練習しているので、ドキュメンテーション( old vs new )または自分自身の改善に貢献しなければならないという問題は考えていません。それはとにかく学びたいことです。

また、これらのいくつかを修正しようとしている間に、Matlabのフィルター設計ツールのいくつかの欠陥を発見しました: 12 したがって、多くのオープンソース開発テストケースの利点もあります。

5
endolith

Sage ;を調べてください。これは、Matlab、Mathematicaなどのオープンソースの代替品です。コア言語はpythonであるため、すべてのpythonライブラリをネイティブで使用できます。また、ほとんどの無料および非無料の数学ソフトウェアにバインディングがあり、その内部でMatlab、Mathematicaなどを使用できます。数学的コミュニティ内から多くのサポートを受けており、その主任開発者は非常に高度に考えられ、プロジェクトに取り組んでいます。

8
user23157

「その他のソリューション」トピックの下: Octave および SciLab もご覧ください。これらは通常、Matlabに十分に近く、スクリプトの翻訳をかなり簡単にします。

ただし、Pythonに移動することも良い考えのようです!Python in SciLab との統合には、いくつかの作業があるようです。 。

5
Peter K.

「その他のソリューション」の下にも:

私は非常にPython-for-scienceバンドワゴンに乗っていますが、私のフリー/オープンソースの「私はMatlabのライセンスを持っていません」という代用は、しばしば [〜#〜] r [〜#〜]になります 代わりに。

構文的にはややイライラします(インデックスは1から始まりますか?割り当ては "varname <-value"で行われますか?さあ...)少なくとも、科学者がいないかもしれない私の科学分野である生態学では、かなり遍在しています。一般的にはプログラミングの読み書き(およびPython module)を送信すると戸惑う)が、Matlab/Rタイプの統計パッケージを使用する-信号処理タイプのアプリケーション用にMatlabコードをRに移植した(具体的には、個人的にはオーディオ用ではありませんが、鳥の研究者がオーディオを使用することは知っています)。

3
Beekguk

PythonとSciPy/NumPyは、科学計算用のかなり成熟したプラットフォームです。

間違いなくかなり弱い場所の1つは、上位レベルの統計です。その領域のサービスにはそれほど感銘を受けていません。また、Pythonへの深い愛情にもかかわらず、統計として採用していませんworkbench すべて。朗報は、PythonからRを呼び出すことでこれを回避できることです。

R(または別の統計言語-あなたがreallyに特定の要件がある場合を除いて検討する唯一の他のものはSASであり、それは高価です)の追加により、2つの組み合わせは非常に堅固なオープンソースで積極的に開発されているプラ​​ットフォーム。 Rの動作は、哲学が少し異なるため、ほとんどのプログラミング言語とは少し異なります。プログラマーではなく、統計学者の考え方に合わせて設計されています。したがって、インデックスは1から始まります。これは、「件名1」、「ID0001」などでもあることが多いためです。

1
Fomite