Matlab的Python實現Scipy和Matplotlib簡介

 轉自開卷有益blog

支持Python系列:Matlab的Python實現Scipy和Matplotlib簡介

     Matlab上成熟的函數庫,進行數值計算和繪圖很方便,在國內的應用也很廣。不過授權也是大問題,所以目前有很多的替代開源實現,在Python上,我目前接觸過Scipy(www.Scipy.org)和Matplotlib(http://matplotlib.sourceforge.net/)2個項目。
        " SciPy 是一個基於 Python 的項目,它旨在再現 MATLAB 的所有功能,優化其性能並簡化與其它軟件的集成,同時仍保持完全免費以及至少和 MATLAB 一樣易於使用。"
(http://www-128.ibm.com/developerworks/cn/linux/l-oslab/index.html)
        Scipy每年都有SciPy  Conference,目前的版本還是04年的0.3.2,需要Python2.3  wxPython2.4   Numeric23等支持。Scipy的結構是scipy_core和scipy_lib兩個部分,不過自己編譯比較麻煩,要C和Fortran編譯器。如果你需要比較完整的Matlab功能支持,可以選擇它。建議安裝Enhanced Python (http://www.enthought.com/python/) ,一次安裝,該有的都有了。

        “Matplotlib 是一個由 John Hunter 等開發的,用以繪製二維圖形的 Python 模塊。它利用了 Python 下的數值計算模塊 Numeric 及 Numarray,克隆了許多 Matlab 中的函數, 用以幫助用戶輕鬆地獲得高質量的二維圖形。Matplotlib 可以繪製多種形式的圖形包括普通的線圖,直方圖,餅圖,散點圖以及誤差線圖等;可以比較方便的定製圖形的各種屬性比如圖線的類型,顏色,粗細,字體的大小等;它能夠很好地支持一部分 TeX 排版命令,可以比較美觀地顯示圖形中的數學公式。Matplotlib 掌握起來也很容易,由於 Matplotlib 使用的大部分函數都與 Matlab 中對應的函數同名,且各種參數的含義,使用方法也一致,這就使得熟悉 Matlab 的用戶使用起來感到得心應手。對那些不熟悉的 Matlab 的用戶而言,這些函數的意義往往也是一目瞭然的,因此只要花很少的時間就可以掌握。”(http://www-128.ibm.com/developerworks/cn/linux/l-matplotlib/?ca=dwcn-newsletter-linux)
         Matplotlib /Pylab,是一個比較輕量級的仿Matlab實現,版本更新也很快,目前最新的是支持Python2.4/2.3的 今年9月發佈的0.84,和Python 2.4 wxPython2.6u等新版本的兼容都很好 ,數值計算支持Numeric 和 Numarray,個人建議用Numarray,如果是Numeric,目前最好用23,不用24版本。如果你想使用Python 2.4,並且主要是一些2維圖形的開發,Matplotlib就很適合你。
        Scipy,Matplotlib,Numeric 和 Numarray,他們一起的組合就成了Python在數值計算繪圖方面的利器,而且值得注意的是,他們都有一些共同的開發者,比如John Hunter,   Jay T Miller等人,所以在兼容上很好。目前值得關注的還有一個東西就是numpy(http://sourceforge.net/projects/numpy)上新發布的 scipy_core0.4,個人猜測,這個因該將用於Scipy的新版本和Numarray 的接替,比較scipy0.32的core代碼和scipy_core0.4的代碼,如果修改代碼 ,scipy0.32_lib+scipy_core0.4應該可以用在python2.4上。    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章