python科學計算

python科學計算

《python科學計算》是2012年在清華大學出版社出版的圖書,本書作者是張若愚。

基本介紹

  • 書名:python科學計算
  • 作者:張若愚
  • ISBN:9787302273608
  • 頁數:619
  • 定價:98.00
  • 出版社:清華大學出版社
  • 出版時間:2012-1-1
  • 裝幀:平裝
內容簡介,作者簡介,本書特色,媒體評論,前言,序言,目錄,

內容簡介

本書介紹如何用Python開發科學計算的應用程式,除了介紹數值計算之外,還著重介紹如何製作互動式的2D、3D圖像,如何設計精巧的程式界面,如何與C語言編寫的高速計算程式結合,如何編寫聲音、圖像處理算法等內容。書中涉及的Python擴展庫包括NumPy、SciPy、SymPy、matplotlib、Traits、TraitsUI、Chaco、TVTK、Mayavi、VPython、OpenCV等,涉及的套用領域包括數值運算、符號運算、二維圖表、三維數據可視化、三維動畫演示、圖像處理以及界面設計等。
書中以大量實例引導讀者逐步深入學習,每個實例程式都有詳盡的解釋,並都能在本書推薦的運行環境中正常運行。此外,本書附有大量的圖表和插圖,力求減少長篇的理論介紹和公式推導,以便讀者通過實例和數據學習並掌握理論知識。

作者簡介

張若愚,畢業於華中理工大學(現華中科技大學)通信工程專業,2004年獲日本姬路工業大學(現兵庫縣立大學)碩士學位。畢業後於日本神戶制鋼綜合研究所從事研究開發工作至今,研究方向為:嵌入式DSP信號處理系統開發,嵌入式MCU控制系統開發,工業控制軟體開發,信號處理、數據處理以及生產系統的計算機模擬。在工作中他積極採用Python作為主要程式語言,在數據處理、信號分析、工業控制、算法模擬等領域取得了較好的研究成果。已完成的研究課題有:嵌入式聲音分離系統、車載音響設備、超音波探傷系統、壓縮機系統的數字模擬等。
張若愚張若愚

本書特色

如果您有一定的Python編程經驗,經常需要對數值數據做一些處理、分析、可視化的工作,那么本書的內容十分適合您閱讀。
如果您是程式設計師,即使工作與科學計算無關,本書所介紹的各種擴展庫也將能豐富您的工具箱,為您的工作提供新的解決方案。
如果您是科研人員,即使對Python或編程並不十分了解,但只要花一點時間學習Python語言以及本書介紹的內容,就能讓您的工作效率大幅提高。附贈光碟中包含書中用到的Python擴展程式、學習本書時用到的工具軟體以及書中所有實例的源程式。對書中關乎讀者學習的重要圖片以彩圖形式列出

媒體評論

在書中,作者為我們介紹了科學計算編程所需的各個方面。從NumPy庫和SciPy算法工具庫的基礎開始,介紹了任何科學計算應用程式所需的基本工具。之後,作者很恰當地介紹了二維繪圖以及三維可視化庫——matplotlib、Chaco和Mayavi。用Traits和TraitsUI進行應用程式和界面開發,以及用Cython、Weave、ctypes和SWIG等與傳統的C語言庫相互結合等內容在書中也有很好的介紹。除了這些核心的工具之外,本書還介紹了使用SymPy進行數學符號運算以及其他的各種有用的主題。
——Eric Jones
註:Enthought是一家位於美國德克薩斯州首府奧斯汀的軟體公司,主要使用Python從事科學計算工具的開發。本書中介紹的NumPy、SciPy、Traits、TraitsUI、Chaco、TVTK以及Mayavi均為該公司開發或維護的開源程式庫。

前言

Python是一種面向對象的、動態的程式設計語言,具有非常簡潔而清晰的語法,既可以用於快速開發程式腳本,也可以用於開發大規模的軟體,特別適合於完成各種高層任務。
隨著NumPy、SciPy、matplotlib、ETS等眾多程式庫的開發,Python越來越適合於做科學計算。與科學計算領域最流行的商業軟體MATLAB相比,Python是一門真正的通用程式設計語言,比MATLAB所採用的腳本語言的套用範圍更廣泛,有更多程式庫的支持,適用於Windows和Linux等多種平台,完全免費並且開放源碼。雖然MATLAB中的某些高級功能目前還無法替代,但是對於基礎性、前瞻性的科研工作和套用系統的開發,完全可以用Python來完成。
本書介紹如何用Python開發科學計算的應用程式,除了介紹數值計算之外,還著重介紹了如何製作互動式二維、三維圖像,如何設計精巧的程式界面,如何與C語言編寫的高速計算程式結合,如何編寫聲音、圖像處理算法等內容。
由於Python的相關資源非常多,本書不可能全部涉及,相信讀者在掌握本書所介紹的一些相關知識之後,只要充分利用網際網路的搜尋功能,就一定能夠很快地找到合適的Python解決方案。此外,由於絕大多數Python資源都開放原始碼,因此讀者將會很容易地對感興趣的內容進行深度挖掘和研究。
本書適合於工科高年級本科生、研究生、工程技術人員以及計算機開發人員閱讀。實例篇以信號處理為主,通過簡單易懂的Python源程式,實際演示信號處理的一些基礎知識和原理,因此特別適合於相關專業的學生作為擴展視野的補充閱讀教材。
閱讀本書的讀者需要掌握Python語言的一些基礎知識,下面是一個“自我檢測列表”,如果讀者熟悉下述內容,閱讀本書的實例原始碼就應該沒有困難。此外由於Python程式簡單易讀,即使讀者沒有接觸過Python,也可以邊閱讀本書邊通過其他書籍或免費教程學習Python。
● 基本語法:庫的載入(import)、循環(for、while)、判斷(if)、函式定義(def)
● 基本數據類型的用法:列表(list)、字典(dict)、元組(tuple)、字元串
● 面向對象的基本語法:類(class)、繼承
● C語言編程的基礎知識
有關Python語言的基礎知識,可以參考啄木鳥社區的Python圖書簡介。
本書所有演示程式,均在Windows XP系統下採用Python(x,y)通過測試。如果讀者覺得安裝眾多的Python程式庫很麻煩,不妨下載安裝Python(x,y),或者直接使用本書所附光碟中的Python(x,y)安裝程式。

序言

Python理所當然地被視為一門通用的程式設計語言,非常適合於網站開發、系統管理以及通用的業務應用程式。它為諸如YouTube這樣的網站系統、Red Hat作業系統中不可或缺的安裝工具以及從雲管理到投資銀行等大型企業的IT系統提供技術支持,從而贏得了如此高的聲譽。Python還在科學計算領域建立了牢固的基礎,覆蓋了從石油勘探的地震數據處理到量子物理等範圍廣泛的套用場景。Python這種廣泛的適用性在於,這些看似不同的套用領域通常在某些重要的方面是重疊的。易於與資料庫連線、在網路上發布信息並高效地進行複雜計算的應用程式對於許多行業是至關重要的,而Python最主要的長處就在於它能讓開發者迅速地創建這樣的工具。
實際上,Python與科學計算的關係源遠流長。吉多·范羅蘇姆創建這門語言,還是在他在荷蘭阿姆斯特丹的國家數學和計算機科學研究學會(CWI)的時候。當時只是作為“課餘”的開發,但是很快其他人也開始為之做出貢獻。從1994年開始的頭幾次Python研討會,都是在大洋彼岸的科研機構舉行的。例如國家標準技術研究所(NIST)、美國地質學會以及勞倫斯利福摩爾國家實驗室(LLNL),所有這些都是以科研為中心的機構。當時Python 1.0剛剛發布,與會者們就已經開始打造Python的數學計算工具。10多年過去了,我們欣喜地看到,我們在開發具有驚人能力的工具集以及建設多彩的社區方面做出了如此多的成績。很合時宜的是,就我所知的第一本涵蓋了Python的主要科學計算工具的綜合性著作,在另一個海洋之遙的中國編著並出版了。展望今後的十幾年,我迫不及待地想看到我們能共同創建出怎樣的未來。
吉多他本人並不是科學家或工程師。他在CWI的計算機科學部門時,為了緩解為阿米巴(Amoeba)作業系統創建系統管理工具的痛苦,他創建了Python。當時那些系統管理工具都是用C語言編寫的。於是Python就成了填補shell腳本和C語言之間空白的工具。作業系統工具與計算逆矩陣或快速傅立葉變換是完全不同的領域,但是從Python誕生開始,世界各地的許多科學家就成了它最早期的採用者。吉多成功地創建了一門能與他們的C和Fortran代碼完美結合的、具有優雅表現力的程式語言。並且,吉多是一位願意聽取建議並添加關鍵功能的語言設計師,例如支持複數就是專門針對科學領域的。隨著NumPy的前身——Numeric的誕生,Python獲得了一個高效且強大的數值運算工具,它鞏固了在未來幾十年中,Python作為領先的科學計算語言的地位。
對於一些人來說,“科學計算編程”會讓人聯想起Numerical Recipes in C中描述的那些複雜算法,或是研究生們在深夜中努力打造程式的場景。但是真實情況所涵蓋的範圍更廣泛——從底層的算法設計到具有高級繪圖功能的用戶界面開發。而後者的重要性卻常常被忽視了。幸運的是在本書中,作者為我們介紹了科學計算編程所需的各個方面。從NumPy庫和SciPy算法工具庫的基礎開始,介紹了任何科學計算應用程式所需的基本工具。然後,本書很恰當地介紹了二維繪圖以及三維可視化庫——matplotlib、Chaco、Mayavi。用Traits和TraitsUI進行應用程式和界面開發,以及用Cython、Weave、ctypes和SWIG等與傳統的C語言庫相互結合等內容在書中也有很好的介紹。除了這些核心的工具之外,本書還介紹了使用SymPy進行數學符號運算以及其他的各種有用的主題。
所有這些主題都被彙編到一本書中真是一件令人欣喜的事情。本書所提供的一站式服務,能夠指導讀者從最初的入門直到創建一個漂亮的、全功能的分析與模擬應用程式。
Eric Jones
2011年12月8日
關於序言作者
Eric Jones是Enthought公司的CEO,他在工程和軟體開發領域擁有廣泛的背景,指導Enthought公司的產品工程和軟體設計。在共同創建Enthought公司之前,他在杜克大學電機工程學系從事數值電磁學以及遺傳最佳化算法方面的研究,並獲得了該系的碩士和博士學位。他教授過許多用Python做科學計算的課程,並且是Python軟體基金會的成員。
關於Enthought公司
Enthought是一家位於美國德克薩斯州首府奧斯汀的軟體公司,主要使用Python從事科學計算工具的開發。本書中介紹的NumPy、SciPy、Traits、TraitsUI、Chaco、TVTK以及Mayavi均為該公司開發或維護的開源程式庫。

目錄

目錄
第1章 軟體包的安裝和介紹...1
第2章 NumPy——快速處理數據...16
第3章 SciPy——數值計算庫...79
第4章 SymPy——符號運算好幫手...115
第5章 matplotlib——繪製精美
的圖表...139
第6章 Traits——為Python添加類型
定義...190
第7章 TraitsUI——輕鬆製作用戶
界面...221
第8章 Chaco——互動式圖表...264
第9章 TVTK——數據的三維可視化...303
第10章 Mayavi——更方便的可視化...343
第11章 VPython——製作3D演示
動畫...378
第12章 OpenCV——圖像處理和計算機
視覺...408
第13章 數據和檔案...453
第14章 數位訊號系統...473
第15章 頻域信號處理...505
第16章 用C語言提高計算效率...537
第17章 自適應濾波器...571
第18章 單擺和雙擺模擬...588
第19章 分形幾何...599

相關詞條

熱門詞條

聯絡我們