一、python簡介
python是一種面向對象的解釋型計算機程序設計語言。python是純粹的自由軟件,源代碼和解釋器CPython遵循GPL協議。Python語法簡介清晰,特色之一是強制用空白符作為語句縮進
python執行
python在執行時,首先會將.py文件中的源代碼編譯成Python的byte code(字節碼),然后再由Python Virtual Machine(python虛擬機)來執行這些編譯好的byte code。這種機制的基本思想跟java,。net是一致的。
基於C的python編譯出的字節碼文件,通常是。pyc格式。除此之外,Python還可以交互模式運行,比如主流操作系統Unix/Linux、Mac、Windows都可以直接再命令模式下直接運行python交互環境。直接下達操作指令即可實現交互操作。
python的優勢
python相對於matlab最大的優勢:免費。
python次大的優勢:你可以大量更改科學計算的算法細節。
可移植性:Matlab必然不如Python。但你主要做Research,這方面需求應當不高。
第三方生態:Matlab不如python,比圖3D的繪圖工具包,比如GUI,比如更方便的並行,使用GPU,Functional等等。長期來看,Python的科學計算生態會比Matlab好
語言更加優美。另外如果有一定的OOP需求,構建較大一點的科學計算系統,直接用Python比用Matlab混合的方案肯定要簡潔不少
畢竟是通用的編程語言,做做Web,搞個爬蟲,編寫個腳本,寫個小工具等用處廣
二、MATLAB簡介
MATLAB是美國MathWorks公司出品的商業數學軟件,用於算法開發,數據可視化,數據分析以及數值計算的高級技術計算語言和交互環境,主要包括MATLAB和Simulink兩大部分。
MATLAB和Mathematica、Maple並稱為三大數學軟件。他在數學類科技應用軟件中再數值計算方面首屈一指。MATLAB可以進行矩陣運算、繪制函數和數值、實現算法、創建用戶界面、連接其他編程語言的程序等,主要應用域工程計算,控制設計、信號處理與通訊、圖像處理,信號檢測、金融建模設計與分析等領域。
MATLAB的優勢:
Community,既然你們實驗室用Matlab,說明搞你們這個領域的大部分學者可能都用Matlab,交流起來必然更加方便。
Simulink,只能說這是個良心作品,不過好像用不着
Matlab本來號稱更快,但實際上由於Python越來越完善的生態,這個優勢已經逐漸喪失了
三、python和matlab區別
Python相比於Matlab最大的優勢是:Python是一門通用編程語言,實現科學計算功能的numpy、scipy、matplotlib只是Python的庫和Package而已,除此之外Python還有用於各種用途的庫和包,比如用於GUI的PyQt和wxPython,用於Web的Diango和Flask
Matlab相比於Python最大的優勢是:它專門就是給數值計算開發的,在數值計算這個領域庫最多,用的人最多,出的書最多
四、如何選擇python和matlab
如果你做策略研究,做數值分析,兩者功能上差不多,但是應該選擇matlab,因為:
1 python的文檔沒有Matlab的詳細
2 Matlab將所有的功能整合了在一起,而Python需要自己一個一個安裝所需要的包,不同的包的代碼風格還不太一樣
如果你還要做網絡爬蟲,數據清洗等偏IT的工作,那么Python更優。
簡單的說,Python是通用語言,什么都能做,而matlab擅長計算。