Python因為其自身的諸多優(yōu)點而成為科學計算的**選擇。本書是將Python 用于科學計算的實用指南,既介紹了相關的基礎知識,又提供了豐富的精彩案例,并為讀者總結了杰出實踐經(jīng)驗。其主要內容包括:科學計算的基本概念與選擇Python 的理由,科學工作流和科學計算的結構,科學項目相關數(shù)據(jù)的各個方面,用于科學計算的API 和工具包,如何利用Python 的NumPy 和SciPy 包完成數(shù)值計算,用Python 做符號計算,數(shù)據(jù)分析與可視化,并行與大規(guī)模計算,等等。
全面闡述Python科學計算基礎內容
提供Python科學計算精彩案例
總結科學計算的任務、難點以及杰出實踐經(jīng)驗
科學計算概況、結構
使用NumPy和SciPy完成數(shù)值計算
使用SymPy進行符號計算的概念和方法
使用matplotlib畫圖程序庫做數(shù)據(jù)可視化
使用pandas、matplotlib和IPython組合做數(shù)據(jù)分析與可視化
Python的并行和高性能計算方法
科學計算應用、庫和工具的Python開發(fā)案例
方案設計、代碼編寫、高性能計算等科學計算杰出實踐
Hemant Kumar Mehta,博士,專注于分布式計算和科學計算領域,擁有十余年教學、科研和軟件開發(fā)經(jīng)驗。他是ACM會員、IEEE高級會員,以及IACSIT、IAENG和MIR等實驗室的高級會員。
陶俊杰,長期從事數(shù)據(jù)分析工作,酷愛Python,每天都和Python面對面,樂此不疲。本科畢業(yè)于北京交通大學機電學院,碩士畢業(yè)于北京交通大學經(jīng)管學院。曾就職于中國移動設計院,目前在京東任職。
陳小莉,長期從事數(shù)據(jù)分析工作,喜歡Python。本科與碩士畢業(yè)于北京交通大學電信學院。目前在中科院從事科技文獻與專利分析工作。
第1 章 科學計算概況與選擇Python的理由 1
1.1 科學計算的定義 2
1.2 科學計算的簡單處理流程 3
1.3 科學與工程領域的案例 5
1.4 解決復雜問題的策略 5
1.5 近似、誤差及相關統(tǒng)計概念和術語 6
1.5.1 誤差分析 7
1.5.2 敏感度、穩(wěn)定性和準確性 7
1.5.3 后向與前向誤差估計 8
1.5.4 誤差可以忽略不計嗎 8
1.6 計算機算術運算和浮點數(shù) 8
1.7 Python 編程語言簡介 9
1.7.1 Python 語言的指導原則 9
1.7.2 為什么用Python 做科學計算 11
1.7.3 Python 的缺點 13
1.8 小結 13
第2 章 科學工作流和科學計算的結構 14
2.1 科學計算的數(shù)學部分 14
2.1.1 線性方程組 14
2.1.2 非線性方程組 15
2.1.3 最優(yōu)化方法 16
2.1.4 內插法 17
2.1.5 外插法 17
2.1.6 數(shù)值積分 18
2.1.7 數(shù)值微分 18
2.1.8 微分方程 19
2.1.9 隨機數(shù)生成器 20
2.2 Python 科學計算 21
2.2.1 NumPy 簡介 22
2.2.2 SciPy 程序庫 22
2.2.3 用pandas 做數(shù)據(jù)分析 23
2.3 IPython 交互式編程簡介 23
2.3.1 IPython 并行計算 24
2.3.2 IPython Notebook 24
2.4 用SymPy 進行符號計算 26
2.4.1 SymPy 的主要特點 27
2.4.2 為什么用SymPy 28
2.5 畫圖程序庫 28
2.6 小結 30
第3 章 有效地制造與管理科學數(shù)據(jù) 31
3.1 數(shù)據(jù)的基本概念 31
3.2 數(shù)據(jù)存儲軟件與工具箱 32
3.2.1 文件 33
3.2.2 數(shù)據(jù)庫 33
3.3 常見的數(shù)據(jù)操作 34
3.4 科學數(shù)據(jù)的格式 35
3.5 現(xiàn)成的標準數(shù)據(jù)集 37
3.6 數(shù)據(jù)生成 41
3.7 模擬數(shù)據(jù)的生成(構造) 41
3.7.1 用Python 的內置函數(shù)生成隨機數(shù) 42
3.7.2 基于統(tǒng)計分布的隨機數(shù)生成器的設計和實現(xiàn) 45
3.7.3 一個用簡單邏輯生成5位隨機數(shù)的程序 46
3.8 大規(guī)模數(shù)據(jù)集的簡要介紹 47
3.9 小結 48
第4 章 Python 科學計算API 49
4.1 Python 數(shù)值科學計算 49
4.1.1 NumPy 程序包 49
4.1.2 SciPy 程序包 52
4.1.3 簡單的SciPy 程序 54
4.2 SymPy符號計算 57
4.2.1 計算機代數(shù)系統(tǒng) 57
4.2.2 通用CAS的特點 57
4.2.3 SymPy設計理念簡介 58
4.2.4 SymPy模塊 60
4.2.5 簡單的范例程序 61
4.3 數(shù)據(jù)分析和可視化的API 和工具 63
4.3.1 用pandas進行數(shù)據(jù)分析和操作 63
4.3.2 用matplotlib進行數(shù)據(jù)可視化 64
4.3.3 用IPython實現(xiàn)Python的交互式計算 64
4.3.4 數(shù)據(jù)分析和可視化的示例程序 65
4.4 小結 67
第5 章 數(shù)值計算 68
5.1 NumPy 的基本對象 68
5.1.1 N 維數(shù)組對象 68
5.1.2 通用函數(shù)對象 72
5.1.3 NumPy 的數(shù)學模塊 74
5.2 SciPy 的介紹 75
5.2.1 SciPy 的數(shù)學函數(shù) 75
5.2.2 高級模塊/程序包 76
5.3 小結 97
第6 章 用Python 做符號計算 98
6.1 符號、表達式和基本運算 98
6.2 求解方程 99
6.3 有理數(shù)、指數(shù)和對數(shù)函數(shù) 100
6.4 多項式 100
6.5 三角函數(shù)和復數(shù) 101
6.6 線性代數(shù) 101
6.7 微積分 103
6.8 向量 105
6.9 物理模塊 106
6.9.1 氫波函數(shù) 106
6.9.2 矩陣和Pauli代數(shù) 107
6.9.3 一維和三維量子諧振子 107
6.9.4 二次量子化 108
6.9.5 高能物理 108
6.9.6 力學 109
6.10 漂亮的打印功能 111
6.11 密碼學模塊 113
6.12 輸入的句法分析 113
6.13 邏輯模塊 114
6.14 幾何模塊 116
6.15 符號積分 117
6.16 多項式操作 119
6.17 集合 120
6.18 運算的簡化和合并 121
6.19 小結 122
第7 章 數(shù)據(jù)分析與可視化 123
7.1 matplotlib 123
7.1.1 matplotlib的架構 124
7.1.2 matplotlib的畫圖方法 125
7.2 pandas 程序庫 128
7.2.1 Series 128
7.2.2 DataFrame 129
7.2.3 Panel 130
7.2.4 pandas 數(shù)據(jù)結構的常用函數(shù) 131
7.2.5 時間序列與日期函數(shù) 137
7.2.6 處理缺失數(shù)據(jù) 140
7.3 I/O 操作 141
7.3.1 處理CSV文件 141
7.3.2 即開即用數(shù)據(jù)集 144
7.4 IPython 145
7.4.1 IPython 終端與系統(tǒng)命令行工具 146
7.4.2 IPython Notebook 149
7.5 小結 150
第8 章 并行與大規(guī)模科學計算 151
8.1 用IPython 做并行計算 152
8.2 IPython 并行計算架構 152
8.3 并行計算示例 154
8.3.1 并行裝飾器 155
8.3.2 IPython 的魔法函數(shù) 155
8.4 IPython 的高級特性 157
8.4.1 容錯執(zhí)行 157
8.4.2 動態(tài)負載均衡 158
8.4.3 在客戶端與引擎之間推拉對象 158
8.4.4 支持數(shù)據(jù)庫存儲請求與結果 160
8.4.5 在IPython 里使用MPI 161
8.4.6 管理任務之間的依賴關系 162
8.4.7 用Amazon EC2 的StarCluster啟動IPython 167
8.5 IPython 數(shù)據(jù)安全措施 168
8.5.1 常用并行編程方法 168
8.5.2 在Python 中演示基于Hadoop的MapReduce 174
8.5.3 在Python 中運行Spark 176
8.6 小結 176
第9 章 真實案例介紹 177
9.1 用Python 開發(fā)的科學計算應用 177
9.1.1 “每個孩子一臺筆記本”項目用Python 開發(fā)界面 177
9.1.2 ExpEYES——科學之眼 180
9.1.3 Python 開發(fā)的天氣預測應用程序 181
9.1.4 Python 開發(fā)的航空器概念設計工具與API 182
9.1.5 OpenQuake 引擎 183
9.1.6 德國西馬克公司的能源效率應用程序 184
9.1.7 高能物理數(shù)據(jù)分析的自動代碼生成器 184
9.1.8 Python 的計算化學應用 186
9.2 Python 開發(fā)的盲音觸覺識別系統(tǒng) 187
9.2.1 TAPTools 空中交通管制工具 187
9.2.2 光能效率檢測的嵌入式系統(tǒng) 188
9.3 Python 開發(fā)的科學計算程序庫 189
9.3.1 Tribon 公司的船舶設計API 189
9.3.2 分子建模工具箱 189
9.3.3 標準Python程序包 190
9.4 小結 191
第10 章 科學計算的最佳實踐 192
10.1 方案設計階段的最佳實踐 192
10.2 功能實現(xiàn)階段的最佳實踐 194
10.3 數(shù)據(jù)管理與應用部署的最佳實踐 196
10.4 實現(xiàn)高性能的最佳實踐 197
10.5 數(shù)據(jù)隱私與安全的最佳實踐 198
10.6 測試與維護的最佳實踐 198
10.7 Python 常用的最佳實踐 199
10.8 小結 200