標籤:
書中涉及的Python擴充庫包括NumPy、SciPy、SymPy、matplotlib、Traits、TraitsUI、
Chaco、TVTK、Mayavi、VPython、OpenCV等。
非常適合於網站開發,系統管理以及通用的商務應用程式。
Python還在科學計算領域建立了牢固的基礎,覆蓋了從石油勘探的地震資料處理到量子物理等範圍廣泛的應用情境。
Python是一種物件導向的,動態程式設計語言,具有非常簡潔而清晰的文法,既可以用於快速開發程式指令碼,也可以用於開發大規模的軟體,特別適合於完成各種高層任務。
與Matlab相比,Python是一門真正的通用程式設計語言,比Matlab所採用的指令碼語言的應用範圍更廣泛,有更多程式庫的支援,適用於Windows和Linux等多種平台,完全免費並且開放源碼。
雖然matlab中某些進階功能目前還無法替代,但是對於基礎性,前瞻性的科研工作和應用系統的開發,完全可以用Python來完成。
Python的基本文法
為了提高程式運行效率,有時需要使用C語言編寫Python的擴充模組。
解釋型(有點類似指令碼?)物件導向,動態?進階程式設計語言。
較廣泛應用於處理系統關係任務和Web編程。
眾多開源的科學計算軟體包都提供了Python的調用介面,例如電腦視覺庫OpenCV、三維可視化庫VTK、醫學影像處理庫ITK
NumPy:快速數組處理
SciPy:數值運算
matplotlib:繪圖功能
語言+擴充庫,構成開發環境
在完成諸如檔案管理、介面設計、網路通訊等各種非科學計算要求時,Python可以輕易完成各種進階任務,開發人員可以用Python實現完成應用程式所需的各種功能。
Python的眾多擴充庫由許多社區分別維護和發布,因此要一一將它們收集齊全並安裝到電腦中是一件十分耗費時間的事情。
故有所謂的Integration Environment軟體包。
Python(x,y)收集了眾多的擴充庫,文檔和教程。建議完整安裝模式。
EPD是一個商用的Python發行版本。教學使用是免費的。
IPython:Python的一個互動式命令列工具(shell?)
支援文法高亮、自動補全、查看文檔,查看源碼,執行cmd命令,自動縮排,支援bash shell命令,並且內建了許多有用的功能和函數。
整合式開發環境簡介
IDE即是將最終程式產生,可能用到的所有工具,整合到一個環境來,方便使用。
Eclipse是著名的跨平台的自由整合式開發環境(IDE)。最初主要用來Java語言開發,但是目前亦有人通過外掛程式使其作為其他電腦語言比如C++和Python的開發工具。Eclipse的本身只是一個架構平台,但是眾多外掛程式的支援使得Eclipse擁有其他功能相對固定的IDE軟體很難具有的靈活性。許多軟體開發商以Eclipse為架構開發自己的IDE。就其本身而言,它只是一個架構和一組服務,用於通過外掛程式組件構建開發環境。pydev是一個功能強大的 Eclipse外掛程式,使用者可以完全利用 Eclipse 來進行 Python 應用程式的開發和調試。即利用eclipse+pydev外掛程式,也能構成一個IDE環境。
Spyder (前身是 Pydee) 是一個強大的互動式 Python 語言開發環境,提供進階的代碼編輯、互動測試、調試等特性,支援包括 Windows、Linux 和 OS X 系統。Spyder是Python(x,y)的作者為它開發的一個簡單的整合式開發環境。和其他的Python開發環境相比,它最大的優點就是模仿MATLAB的“工作空間”的功能,可以很方便地觀察和修改數組的值。
Codimension 是一個 Python 整合式開發環境,提供了包括代碼編輯和基於圖表的程式碼分析功能。
Visual Studio 的 Python 開發外掛程式 PTVS、vim 外掛程式Python-mode、PythonWin 、WingIDE、 PyCharm 等。
圖形化使用者介面(Graphical User Interface,簡稱 GUI,又稱圖形使用者介面)
pylab 是類似於 matlab 這樣一個綜合性的平台, pylab 把 Python, NumPy, SciPy, Matplotlib都集合起來了,用的是 IPython 作為介面,把 namespace 都給合到一塊兒了。即iPython 的 pylab 模式。
初級使用者建議使用pylab模式,pylab中包括了matplotlib.pyplot的所有繪圖命令,以及numpy和matplotlib.mlab中的函數,在這個模式下,和MATLAB的繪圖命令和套路幾乎是完全一樣的;進階使用者建議使用matplotlib,可以進行更多的細節控制。
函數庫介紹
數值計算庫 Numpy+Scipy 有了這兩個庫,Python就有幾乎和Matlab一樣的處理資料和計算的能力了。SciPy的核心計算部分都是一些久經考驗的Fortran數值計算庫。
符號計算庫 Sympy 是一套進行符號數學運算的函數庫
介面設計 使用Traits庫 Traits庫分為Traits和TraitsUI兩大部分。使用TraitsUI庫編寫的程式自動支援wxPython和pyQt兩個經典的介面庫。
繪圖和可視化
Chaco庫與Traits庫緊密相連,方便製作動態互動表徵圖功能。
matplotlib
TVTK庫是在標準的VTK庫之上用Traits庫進行封裝,要在Python使用VTK,用TVTK再好不過。Mayavi2則是在TVTK的基礎上再添加了一套面嚮應用的方便工具,它既可以單獨作為3D可視化程式使用,也可以快速地嵌入到使用者的程式中去。
VTK(視覺化工具函數庫)
Visual庫能夠快速、方便地製作3D動畫示範。
影像處理和電腦視覺
OpenCV 可用於開發即時的影像處理、電腦視覺以及模式識別程式。
Python的介面編程
發行版內建的Tkinter wxPython PyQt PyGTK都可調用這些庫來進行介面設計
Python實踐筆記