1.1 Python簡介
Python是一種解釋型、面向?qū)ο?、動態(tài)的高級程序設(shè)計語言。自從20世紀90年代初Python語言誕生至今,它逐漸被廣泛應(yīng)用于處理系統(tǒng)管理任務(wù)和Web編程。目前Python已經(jīng)成為最受歡迎的程序設(shè)計語言之一。2011年1月,它被TIOBE編程語言排行榜評為2010年度語言。
由于Python語言的簡潔、易讀以及可擴展性,在國外用Python做科學(xué)計算的研究機構(gòu)日益增多,一些知名大學(xué)已經(jīng)采用Python教授程序設(shè)計課程。例如麻省理工學(xué)院的計算機科學(xué)及編程導(dǎo)論課程①就使用Python語言講授。眾多開源的科學(xué)計算軟件包都提供了Python的調(diào)用接口,例如著名的計算機視覺庫OpenCV、三維可視化庫VTK、醫(yī)學(xué)圖像處理庫ITK。而Python專用的科學(xué)計算擴展庫就更多了,例如如下3個十分經(jīng)典的科學(xué)計算擴展庫:NumPy、SciPy和matplotlib,它們分別為Python提供了快速數(shù)組處理、數(shù)值運算以及繪圖功能。因此Python語言及其眾多的擴展庫所構(gòu)成的開發(fā)環(huán)境十分適合工程技術(shù)、科研人員處理實驗數(shù)據(jù)、制作圖表,甚至開發(fā)科學(xué)計算應(yīng)用程序。
說起科學(xué)計算,首先會被提到的可能是MATLAB。然而除了MATLAB的一些專業(yè)性很強的工具箱目前還無法替代之外,MATLAB的大部分常用功能都可以在Python世界中找到相應(yīng)的擴展庫。和MATLAB相比,用Python做科學(xué)計算有如下優(yōu)點:
● 首先,MATLAB是一款商用軟件,并且價格不菲。而Python完全免費,眾多開源的科學(xué)計算庫都提供了Python的調(diào)用接口。用戶可以在任何計算機上免費安裝Python及其絕大多數(shù)擴展庫。
● 其次,與MATLAB相比,Python是一門更易學(xué)、更嚴謹?shù)某绦蛟O(shè)計語言。它能讓用戶編寫出更易讀、易維護的代碼。
● 最后,MATLAB主要專注于工程和科學(xué)計算。然而即使在計算領(lǐng)域,也經(jīng)常會遇到文件管理、界面設(shè)計、網(wǎng)絡(luò)通信等各種需求。而Python有著豐富的擴展庫,可以輕易完成各種高級任務(wù),開發(fā)者可以用Python實現(xiàn)完整應(yīng)用程序所需的各種功能。
例如,筆者在一個模擬控制系統(tǒng)的項目中,完全用Python實現(xiàn)了系統(tǒng)模擬及算法優(yōu)化,并在此基礎(chǔ)上實現(xiàn)了應(yīng)用程序必需的文檔和數(shù)據(jù)庫管理、用戶界面設(shè)計、與機器設(shè)備及其他軟件進行通信等功能。最后,整個應(yīng)用程序可以隨意安裝到不同的計算機上,而不受任何商用軟件的使用條款限制。