放棄MATLAB翻屈!簡述winpython為什么比MATLAB更方便
費了幾天功夫,終于將Python科學(xué)計算工具winpython給熟悉了個大概伸眶,基本滿足自己的需要了。費話不多說厘贼,馬上講解決一下為什么python如此讓人著迷:
1.下載
Python的IDE發(fā)行版有很多,不過嘴秸,最常用的是winpython,它輕巧凭疮,包含了常用的科學(xué)計算工具包numpy,scipy执解,sklearn纲酗,matplotlib,還有可以調(diào)用C動態(tài)庫的擴展包ctypes耕姊,更好的是它有32位和64位,我是經(jīng)常需要用到超過4G的內(nèi)存茉兰,所以我選擇了64位版本欣簇。
下截地址:http://sourceforge.net/projects/winpython
2.工具包簡介
winpython實際上是整合了IDE工具spyder和一些科學(xué)計算包,默認包含了以下工具包熊咽,有了這些工具包,完全可以替代MATLAB做科學(xué)計算:
numpy被因,scipy:數(shù)值計算工具包卿拴,里面我含了各種矩陣算梨与,MATLAB有的,它基本上都有粥鞋。不過,里面有array和matrix兩種類型呻粹,最好是用array類型的,因為它的功能最全腮郊,大部分函數(shù)處理的類型都是array。scipy實際上包含了numpy的功能轧飞,并且還有2D繪圖子工具包pylab庄萎,里面的plot用法很像matlab的。scipy里有各種最優(yōu)化算法糠涛,矩陣操作,比如約束最優(yōu)化忍捡,非約束最優(yōu)化,矩陣求逆具篇,矩陣分解凌埂,等等驱显,它的官方在線文檔:http://docs.scipy.org/doc/scipy/reference/
matplotlib:2D和3D繪圖工具瞳抓,繪圖功能強大,各種數(shù)據(jù)可視化表現(xiàn)方式栓霜,沒有做不到的,只有你想不到的胳蛮。
sklearn:各種學(xué)習(xí)算法,聚類算法都在里面仅炊,比如svm,k-means孟岛,KNN,PCA渠羞,隨機森林等等一大堆智哀。官方網(wǎng)站:http://scikit-learn.org/stable/
ctypes:能使python和c交流的工具包有好幾個,但是我認這個最好用瓷叫,因為,你可以用VS生成一個動態(tài)庫摹菠,而ctypes則可以直接去調(diào)用動態(tài)庫中的函數(shù)。當你要處理復(fù)雜運算時蔽介,用純粹的python實現(xiàn)出來的會慢的有如世界末日煮寡,但是用C實現(xiàn)無疑是最快的辦法虹蓄,而ctypes則可以幫你輕松做到這一點幸撕。想想matlab和c的混編,光是數(shù)據(jù)提取和類型轉(zhuǎn)換就是一堆律胀,估計很多人會有種想死的感覺。由于ctypes實現(xiàn)了python便捷訪問c動態(tài)庫的功能累铅,你會覺得python和c的混編是一件非常輕松快樂的事情站叼。它的方便之處還在于菇民,numpy或scipy的數(shù)據(jù)成員中是默認包含ctypes的投储,這使python到c函數(shù)的各種數(shù)據(jù)類型的參數(shù)傳遞變得異常簡單。
3.關(guān)于opencv的python版本
opencv玛荞,搞cv的都很熟悉呕寝,值得高興的是,opencv是有python版本的下梢。如果matlab要調(diào)用opencv的函數(shù)麻煩的有如在地獄掙扎,那么在python中使用opencv就如同在天堂里跳舞一樣讶坯。matlab讀視頻的函數(shù)耗時之大,我是親身經(jīng)歷的辆琅,并且深受其害这刷,但是opencv讀視頻是非惩裱蹋快速的暇屋,而pyhon可以很方便的調(diào)用opencv中的函數(shù),所以這其中的好處自然不必多說了叔营。
python_opencv下載地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv
從上面的地址中下載現(xiàn)成的帶ffmpeg的python_opencv所宰,然后將里面的所有文件都拷貝到Lib\site-packages下同就可以使用了∽兄啵或者你有耐心的話也可以從opencv的官方網(wǎng)站下載源碼自己編譯。