正文

Python 科學(xué)計算 作者:張若愚


Python理所當(dāng)然地被視為一門通用的程序設(shè)計語言,非常適合于網(wǎng)站開發(fā)、系統(tǒng)管理以及通用的業(yè)務(wù)應(yīng)用程序。它為諸如YouTube這樣的網(wǎng)站系統(tǒng)、Red Hat操作系統(tǒng)中不可或缺的安裝工具以及從云管理到投資銀行等大型企業(yè)的IT系統(tǒng)提供技術(shù)支持,從而贏得了如此高的聲譽(yù)。Python還在科學(xué)計算領(lǐng)域建立了牢固的基礎(chǔ),覆蓋了從石油勘探的地震數(shù)據(jù)處理到量子物理等范圍廣泛的應(yīng)用場景。Python這種廣泛的適用性在于,這些看似不同的應(yīng)用領(lǐng)域通常在某些重要的方面是重疊的。易于與數(shù)據(jù)庫連接、在網(wǎng)絡(luò)上發(fā)布信息并高效地進(jìn)行復(fù)雜計算的應(yīng)用程序?qū)τ谠S多行業(yè)是至關(guān)重要的,而Python最主要的長處就在于它能讓開發(fā)者迅速地創(chuàng)建這樣的工具。

實際上,Python與科學(xué)計算的關(guān)系源遠(yuǎn)流長。吉多·范羅蘇姆創(chuàng)建這門語言,還是在他在荷蘭阿姆斯特丹的國家數(shù)學(xué)和計算機(jī)科學(xué)研究學(xué)會(CWI)的時候。當(dāng)時只是作為“課余”的開發(fā),但是很快其他人也開始為之做出貢獻(xiàn)。從1994年開始的頭幾次Python研討會,都是在大洋彼岸的科研機(jī)構(gòu)舉行的。例如國家標(biāo)準(zhǔn)技術(shù)研究所(NIST)、美國地質(zhì)學(xué)會以及勞倫斯利福摩爾國家實驗室(LLNL),所有這些都是以科研為中心的機(jī)構(gòu)。當(dāng)時Python 1.0剛剛發(fā)布,與會者們就已經(jīng)開始打造Python的數(shù)學(xué)計算工具。10多年過去了,我們欣喜地看到,我們在開發(fā)具有驚人能力的工具集以及建設(shè)多彩的社區(qū)方面做出了如此多的成績。很合時宜的是,就我所知的第一本涵蓋了Python的主要科學(xué)計算工具的綜合性著作,在另一個海洋之遙的中國編著并出版了。展望今后的十幾年,我迫不及待地想看到我們能共同創(chuàng)建出怎樣的未來。

吉多他本人并不是科學(xué)家或工程師。他在CWI的計算機(jī)科學(xué)部門時,為了緩解為阿米巴(Amoeba)操作系統(tǒng)創(chuàng)建系統(tǒng)管理工具的痛苦,他創(chuàng)建了Python。當(dāng)時那些系統(tǒng)管理工具都是用C語言編寫的。于是Python就成了填補(bǔ)shell腳本和C語言之間空白的工具。操作系統(tǒng)工具與計算逆矩陣或快速傅立葉變換是完全不同的領(lǐng)域,但是從Python誕生開始,世界各地的許多科學(xué)家就成了它最早期的采用者。吉多成功地創(chuàng)建了一門能與他們的C和Fortran代碼完美結(jié)合的、具有優(yōu)雅表現(xiàn)力的程序語言。并且,吉多是一位愿意聽取建議并添加關(guān)鍵功能的語言設(shè)計師,例如支持復(fù)數(shù)就是專門針對科學(xué)領(lǐng)域的。隨著NumPy的前身——Numeric的誕生,Python獲得了一個高效且強(qiáng)大的數(shù)值運(yùn)算工具,它鞏固了在未來幾十年中,Python作為領(lǐng)先的科學(xué)計算語言的地位。 

對于一些人來說,“科學(xué)計算編程”會讓人聯(lián)想起Numerical Recipes in C中描述的那些復(fù)雜算法,或是研究生們在深夜中努力打造程序的場景。但是真實情況所涵蓋的范圍更廣泛——從底層的算法設(shè)計到具有高級繪圖功能的用戶界面開發(fā)。而后者的重要性卻常常被忽視了。幸運(yùn)的是在本書中,作者為我們介紹了科學(xué)計算編程所需的各個方面。從NumPy庫和SciPy算法工具庫的基礎(chǔ)開始,介紹了任何科學(xué)計算應(yīng)用程序所需的基本工具。然后,本書很恰當(dāng)?shù)亟榻B了二維繪圖以及三維可視化庫——matplotlib、Chaco、Mayavi。用Traits和TraitsUI進(jìn)行應(yīng)用程序和界面開發(fā),以及用Cython、Weave、ctypes和SWIG等與傳統(tǒng)的C語言庫相互結(jié)合等內(nèi)容在書中也有很好的介紹。除了這些核心的工具之外,本書還介紹了使用SymPy進(jìn)行數(shù)學(xué)符號運(yùn)算以及其他的各種有用的主題。

所有這些主題都被匯編到一本書中真是一件令人欣喜的事情。本書所提供的一站式服務(wù),能夠指導(dǎo)讀者從最初的入門直到創(chuàng)建一個漂亮的、全功能的分析與模擬應(yīng)用程序。

Eric Jones

2011年12月8日

關(guān)于序言作者

Eric Jones是Enthought公司的CEO,他在工程和軟件開發(fā)領(lǐng)域擁有廣泛的背景,指導(dǎo)Enthought公司的產(chǎn)品工程和軟件設(shè)計。在共同創(chuàng)建Enthought公司之前,他在杜克大學(xué)電機(jī)工程學(xué)系從事數(shù)值電磁學(xué)以及遺傳優(yōu)化算法方面的研究,并獲得了該系的碩士和博士學(xué)位。他教授過許多用Python做科學(xué)計算的課程,并且是Python軟件基金會的成員。

關(guān)于Enthought公司

Enthought是一家位于美國得克薩斯州首府奧斯汀的軟件公司,主要使用Python從事科學(xué)計算工具的開發(fā)。本書中介紹的NumPy、SciPy、Traits、TraitsUI、Chaco、TVTK以及Mayavi均為該公司開發(fā)或維護(hù)的開源程序庫。


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號