MATLAB vs Python: for Scientific Computing – A Beginners Guide

Faisal Riyad
Faisal Riyad

Follow

Apr 20, 2018 · 6 min read

Now a days “the ability to write codes” has become an essential skill for the students from the technical discipline. あなたはそれが好きかどうかのいずれか、あなたの学部の研究中に、あなたは、割り当てを行うコーディングのいくつかの並べ替えで方程式やプロジェクトの問題の一部を解決します。 そして、より高い調査のために行き、広範な研究をすることについて考えれば、”執筆コード”はあなたのための技術を知らなければならないである。あなたはどちらを学ぶべきですか—MATLABかPythonですか? 明確な答えはありません。 MATLABは長い間科学計算のためにそこにいましたが、scipyなどのpython用の科学計算パッケージの開発として、NumPyは時代遅れではありませんでした。 そのため、MATLABは科学界のためのレガシー言語またはツールとなっています。
それはいくつかの理由のためにレガシー言語になっています。 エンジニアや科学者は、常に行列と配列の数学を直接表現するプログラミング言語を必要とし、その後MATLAB(matrix laboratory)が誕生しました。 MATLABは数学であり、行列指向の言語は、経済データのモデリング、画像解析、ロボットの運転など、いくつかの目的のために、さまざまな種類の特殊なツール これらの道具箱は科学的な、工学適用のために専門的に開発され、厳格にテストされ、そしてよく文書化される。 そしてそれがあなたがそれのために価格を支払う理由です。 一方、Pythonでは、科学的および工学的用途のためにコミュニティが作成したパッケージに依存する必要があります。P>

Python対MATLABでの行列操作
Python対MATLABでの行列操作

matlabには充実した量の関数があります。 最高の製品の1つは’SimuLink’ですが、これにはまだ代替手段はありません。 あなたはそれに代わるものとして’LabView’という名前の別のグラフィカルプログラミング言語を考えるかもしれませんが、あなたはそれのために重い代 そして、Pythonでコミュニティが開発したパッケージとしてそれを得るためには、少なくとも10年の半分を待たなければならないかもしれません。

学習を開始するための非常に優れたドキュメントと、MATLAB Centralに投稿するときに尋ねられる質問に答えたか、誰かが回答する大規模な科学コミュニテ 365,000人の貢献者がおり、120の質問に答え、25,000のサンプルスクリプトやコードが一日あたりダウンロードされています。P>

MATLABの最高のものは、GUIベースの可用性です初心者の生活を容易にする一般的なタスクを実行するためのアプリ。 ‘Fminsearch’コマンドを使用して曲線を近似する方法がわからない場合は、data fitting toolboxを開くだけで、マウスを数回クリックするだけで完了します。 誰かがparallel computing toolboxにアクセスできる場合、MATLABでは並列処理がはるかに簡単です。 これは、計算生物学、計算財政、制御システム、データサイエンス、画像処理とコンピュータビジョン、機械学習、物理モデリングとシミュレーション、ロボット工学、信号処理と通信とIOTのためのツールボックスを持っています。 私が見つけた唯一の欠点は、あなたはそれを支払わなければならず、ある程度はあなたのコンピューティングデバイスに余分なRAMを少し必要とし反対に、MATLABの代替としてPythonを呼び出すことは技術的には間違っていますが、pythonで本格的なアプリやその他のソフトウェアツールを開発できる汎用プ 主要なGUIライブラリ(Qtなど)のいずれかを使用してアプリケーションを作成したり、OpenGLを使用したり、USBポートを駆動したりすることができます。

Pythonとそのコンパニオンライブラリは、日々ますます洗練されています。 大規模な問題の場合、PythonはMATLABスクリプトと比較してはるかに表現力があり読みやすくなります。 つまり、コードブロックはインデントによって定義され、プログラムがより簡単に従うことができます。P>

Pythonでのインデント

無料のクロスプラットフォーム、汎用および高レベルのプログラミング言語であること、多くの人々が今pythonを採用しています。 Pycharm、ipython notebook、jupyter notebookのようなIDE anacondaのようなディストリビューションは、pythonを研究者にとってはるかに使いやすくしました。 この人気の結果、データの可視化、機械学習、自然言語処理、複雑なデータ分析などのための広範なドキュメントを備えた多くのPython科学パッケージが利用可能 たとえば、scikit-learnには、非常に優れたドキュメントとチュートリアルを備えた最先端の”機械学習”アプローチが含まれています。div>

ここで私はいくつかの人気のあるpythonの科学ライブラリとツールのリストを収集しました:

scipy:このライブラリは、科学的なコンピューティングと技術的なコンピュー これは、最適化、線形代数、積分、補間、特殊関数、FFT、信号および画像処理、ODEソルバーと科学と工学で一般的な他のタスクのためのモジュールが含まれています。

NumPy

NumPy: これは、これらの配列を操作するための高レベルの数学関数の大規模なライブラリと一緒に、大規模な、多次元配列と行列のサポートを追加し、Pythonと科学Pandas:Pandasはデータ操作と分析のためのライブラリです。 このライブラリは、数値表と時系列を操作するためのデータ構造と演算を提供します。SymPy:SymPyは記号計算のためのライブラリであり、基本的な記号算術から微積分、代数、離散数学、量子物理学に至るまでの機能が含まれています。 これは、スタンドアロンアプリケーションとして、他のアプリケーションへのライブラリとして、またはweb上でライブのいずれかのコンピュータ代数機能を提供します。

Matplotlib:Matplotlibは、さまざまなハードコピー形式とプラットフォーム間の対話型環境で出版品質の数値を生成するpython2Dプロットライブラリです。 Matplotlibを使用すると、プロット、ヒストグラム、パワースペクトル、棒グラフ、errorcharts、散布図などを生成することができます。scikit-learnは機械学習ライブラリです。 これは、サポートベクターマシン、ランダムフォレスト、勾配ブースト、k-meansとDBSCANを含む様々な分類、回帰とクラスタリングアルゴリズムを備えており、Pythonの数値およscikit-image:scikit-imageは画像処理ライブラリです。 これには、セグメンテーション、幾何学的変換、色空間操作、分析、フィルタリング、形態、特徴検出などのためのアルゴリズムが含まれています。

Veusz:Veuszは、PDF、PostScript、SVGなどの一般的なベクトル形式で出版品質のプロットを生成するために設計された科学的なプロットとグラフ化パッケージです。

Astropy:Astropyプロジェクトは、天文学で使用するために設計されたパッケージのコレクションです。 コアastropyパッケージには、プロの天文学者や天体物理学者を対象とした機能が含まれていますが、天文学ソフトウェアを開発する人には便利です。PsychoPy:PsychoPyは、神経科学と実験心理学のための実験の生成のためのパッケージです。 PsychoPyは、神経科学、心理学、心理物理学の実験の広い範囲のための刺激とデータの収集の提示を可能にするように設計されています。

Biopython:Biopythonは計算生物学とバイオインフォマティクスのための非商用Pythonツールのコレクションです。 これは、生物学的配列と配列注釈を表現するためのクラスが含まれており、それは、ファイル形式の様々な読み書きすることができます。

そこには非常に多くのパッケージがあり、最善のことは、それらが無料であること、すなわちPythonの科学的および数値計算コストがゼロであることだから、初心者の観点から、質問に対する明確な答えはありません:”私は科学的計算のために使用すべきものはどれですか?”私はこの質問に別の方法で答えたいと思います。 Pythonを使用すると、MATLABにアクセスできない人との共同作業がより簡単になります。 あるいは、MATLABと同じように最適な代替パッケージがPythonにはないため、MATLABを使用することもあります。

好きで、Facebook上で私たちに従ってください:https://www.facebook.com/gradbunker

Facebook

コメントを残す

メールアドレスが公開されることはありません。