費了幾天功夫,終於將Python科學計算工具winpython給熟悉了個大概,基本知足本身的須要了。費話很少說,立刻講解決一下爲何python如此讓人着迷:python
1.下載算法
Python的IDE發行版有不少,不過,最經常使用的是winpython,它輕巧,包含了經常使用的科學計算工具包numpy,scipy,sklearn,matplotlib,還有能夠調用C動態庫的擴展包ctypes,更好的是它有32位和64位,我是常常須要用到超過4G的內存,因此我選擇了64位版本。函數
下截地址:http://sourceforge.net/projects/winpython工具
2.工具包簡介學習
winpython其實是整合了IDE工具spyder和一些科學計算包,默認包含了如下工具包,有了這些工具包,徹底能夠替代MATLAB作科學計算:優化
numpy,scipy:數值計算工具包,裏面我含了各類矩陣算,MATLAB有的,它基本上都有。不過,裏面有array和matrix兩種類型,最好是用array類型的,由於它的功能最全,大部分函數處理的類型都是array。scipy實際上包含了numpy的功能,而且還有2D繪圖子工具包pylab,裏面的plot用法很像matlab的。scipy裏有各類最優化算法,矩陣操做,好比約束最優化,非約束最優化,矩陣求逆,矩陣分解,等等,它的官方在線文檔:http://docs.scipy.org/doc/scipy/reference/網站
matplotlib:2D和3D繪圖工具,繪圖功能強大,各類數據可視化表現方式,沒有作不到的,只有你想不到的。.net
sklearn:各類學習算法,聚類算法都在裏面,好比svm,k-means,KNN,PCA,隨機森林等等一大堆。官方網站:http://scikit-learn.org/stable/視頻
ctypes:能使python和c交流的工具包有好幾個,可是我認這個最好用,由於,你能夠用VS生成一個動態庫,而ctypes則能夠直接去調用動態庫中的函數。當你要處理複雜運算時,用純粹的python實現出來的會慢的有如世界末日,可是用C實現無疑是最快的辦法,而ctypes則能夠幫你輕鬆作到這一點。想一想matlab和c的混編,光是數據提取和類型轉換就是一堆,估計不少人會有種想死的感受。因爲ctypes實現了python便捷訪問c動態庫的功能,你會以爲python和c的混編是一件很是輕鬆快樂的事情。它的方便之處還在於,numpy或scipy的數據成員中是默認包含ctypes的,這使python到c函數的各類數據類型的參數傳遞變得異常簡單。ip
3.關於opencv的python版本
opencv,搞cv的都很熟悉,值得高興的是,opencv是有python版本的。若是matlab要調用opencv的函數麻煩的有如在地獄掙扎,那麼在python中使用opencv就如同在天堂裏跳舞同樣。matlab讀視頻的函數耗時之大,我是親身經歷的,而且深受其害,可是opencv讀視頻是很是快速的,而pyhon能夠很方便的調用opencv中的函數,因此這其中的好處天然沒必要多說了。
python_opencv下載地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv
從上面的地址中下載現成的帶ffmpeg的python_opencv,而後將裏面的全部文件都拷貝到Lib\site-packages下同就可使用了。或者你有耐心的話也能夠從opencv的官方網站下載源碼本身編譯。