Python因?yàn)槠渥陨淼闹T多優(yōu)點(diǎn)而成為科學(xué)計算的**選擇。本書是將Python 用于科學(xué)計算的實(shí)用指南,既介紹了相關(guān)的基礎(chǔ)知識,又提供了豐富的精彩案例,并為讀者總結(jié)了杰出實(shí)踐經(jīng)驗(yàn)。其主要內(nèi)容包括:科學(xué)計算的基本概念與選擇Python 的理由,科學(xué)工作流和科學(xué)計算的結(jié)構(gòu),科學(xué)項(xiàng)目相關(guān)數(shù)據(jù)的各個方面,用于科學(xué)計算的API 和工具包,如何利用Python 的NumPy 和SciPy 包完成數(shù)值計算,用Python 做符號計算,數(shù)據(jù)分析與可視化,并行與大規(guī)模計算,等等。
全面闡述Python科學(xué)計算基礎(chǔ)內(nèi)容
提供Python科學(xué)計算精彩案例
總結(jié)科學(xué)計算的任務(wù)、難點(diǎn)以及杰出實(shí)踐經(jīng)驗(yàn)
科學(xué)計算概況、結(jié)構(gòu)
使用NumPy和SciPy完成數(shù)值計算
使用SymPy進(jìn)行符號計算的概念和方法
使用matplotlib畫圖程序庫做數(shù)據(jù)可視化
使用pandas、matplotlib和IPython組合做數(shù)據(jù)分析與可視化
Python的并行和高性能計算方法
科學(xué)計算應(yīng)用、庫和工具的Python開發(fā)案例
方案設(shè)計、代碼編寫、高性能計算等科學(xué)計算杰出實(shí)踐
Hemant Kumar Mehta,博士,專注于分布式計算和科學(xué)計算領(lǐng)域,擁有十余年教學(xué)、科研和軟件開發(fā)經(jīng)驗(yàn)。他是ACM會員、IEEE高級會員,以及IACSIT、IAENG和MIR等實(shí)驗(yàn)室的高級會員。
陶俊杰,長期從事數(shù)據(jù)分析工作,酷愛Python,每天都和Python面對面,樂此不疲。本科畢業(yè)于北京交通大學(xué)機(jī)電學(xué)院,碩士畢業(yè)于北京交通大學(xué)經(jīng)管學(xué)院。曾就職于中國移動設(shè)計院,目前在京東任職。
陳小莉,長期從事數(shù)據(jù)分析工作,喜歡Python。本科與碩士畢業(yè)于北京交通大學(xué)電信學(xué)院。目前在中科院從事科技文獻(xiàn)與專利分析工作。
第1 章 科學(xué)計算概況與選擇Python的理由 1
1.1 科學(xué)計算的定義 2
1.2 科學(xué)計算的簡單處理流程 3
1.3 科學(xué)與工程領(lǐng)域的案例 5
1.4 解決復(fù)雜問題的策略 5
1.5 近似、誤差及相關(guān)統(tǒng)計概念和術(shù)語 6
1.5.1 誤差分析 7
1.5.2 敏感度、穩(wěn)定性和準(zhǔn)確性 7
1.5.3 后向與前向誤差估計 8
1.5.4 誤差可以忽略不計嗎 8
1.6 計算機(jī)算術(shù)運(yùn)算和浮點(diǎn)數(shù) 8
1.7 Python 編程語言簡介 9
1.7.1 Python 語言的指導(dǎo)原則 9
1.7.2 為什么用Python 做科學(xué)計算 11
1.7.3 Python 的缺點(diǎn) 13
1.8 小結(jié) 13
第2 章 科學(xué)工作流和科學(xué)計算的結(jié)構(gòu) 14
2.1 科學(xué)計算的數(shù)學(xué)部分 14
2.1.1 線性方程組 14
2.1.2 非線性方程組 15
2.1.3 最優(yōu)化方法 16
2.1.4 內(nèi)插法 17
2.1.5 外插法 17
2.1.6 數(shù)值積分 18
2.1.7 數(shù)值微分 18
2.1.8 微分方程 19
2.1.9 隨機(jī)數(shù)生成器 20
2.2 Python 科學(xué)計算 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 進(jìn)行符號計算 26
2.4.1 SymPy 的主要特點(diǎn) 27
2.4.2 為什么用SymPy 28
2.5 畫圖程序庫 28
2.6 小結(jié) 30
第3 章 有效地制造與管理科學(xué)數(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 科學(xué)數(shù)據(jù)的格式 35
3.5 現(xiàn)成的標(biāo)準(zhǔn)數(shù)據(jù)集 37
3.6 數(shù)據(jù)生成 41
3.7 模擬數(shù)據(jù)的生成(構(gòu)造) 41
3.7.1 用Python 的內(nèi)置函數(shù)生成隨機(jī)數(shù) 42
3.7.2 基于統(tǒng)計分布的隨機(jī)數(shù)生成器的設(shè)計和實(shí)現(xiàn) 45
3.7.3 一個用簡單邏輯生成5位隨機(jī)數(shù)的程序 46
3.8 大規(guī)模數(shù)據(jù)集的簡要介紹 47
3.9 小結(jié) 48
第4 章 Python 科學(xué)計算API 49
4.1 Python 數(shù)值科學(xué)計算 49
4.1.1 NumPy 程序包 49
4.1.2 SciPy 程序包 52
4.1.3 簡單的SciPy 程序 54
4.2 SymPy符號計算 57
4.2.1 計算機(jī)代數(shù)系統(tǒng) 57
4.2.2 通用CAS的特點(diǎn) 57
4.2.3 SymPy設(shè)計理念簡介 58
4.2.4 SymPy模塊 60
4.2.5 簡單的范例程序 61
4.3 數(shù)據(jù)分析和可視化的API 和工具 63
4.3.1 用pandas進(jìn)行數(shù)據(jù)分析和操作 63
4.3.2 用matplotlib進(jìn)行數(shù)據(jù)可視化 64
4.3.3 用IPython實(shí)現(xiàn)Python的交互式計算 64
4.3.4 數(shù)據(jù)分析和可視化的示例程序 65
4.4 小結(jié) 67
第5 章 數(shù)值計算 68
5.1 NumPy 的基本對象 68
5.1.1 N 維數(shù)組對象 68
5.1.2 通用函數(shù)對象 72
5.1.3 NumPy 的數(shù)學(xué)模塊 74
5.2 SciPy 的介紹 75
5.2.1 SciPy 的數(shù)學(xué)函數(shù) 75
5.2.2 高級模塊/程序包 76
5.3 小結(jié) 97
第6 章 用Python 做符號計算 98
6.1 符號、表達(dá)式和基本運(yùn)算 98
6.2 求解方程 99
6.3 有理數(shù)、指數(shù)和對數(shù)函數(shù) 100
6.4 多項(xiàng)式 100
6.5 三角函數(shù)和復(fù)數(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 力學(xué) 109
6.10 漂亮的打印功能 111
6.11 密碼學(xué)模塊 113
6.12 輸入的句法分析 113
6.13 邏輯模塊 114
6.14 幾何模塊 116
6.15 符號積分 117
6.16 多項(xiàng)式操作 119
6.17 集合 120
6.18 運(yùn)算的簡化和合并 121
6.19 小結(jié) 122
第7 章 數(shù)據(jù)分析與可視化 123
7.1 matplotlib 123
7.1.1 matplotlib的架構(gòu) 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ù)結(jié)構(gòu)的常用函數(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 小結(jié) 150
第8 章 并行與大規(guī)?茖W(xué)計算 151
8.1 用IPython 做并行計算 152
8.2 IPython 并行計算架構(gòu) 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)負(fù)載均衡 158
8.4.3 在客戶端與引擎之間推拉對象 158
8.4.4 支持?jǐn)?shù)據(jù)庫存儲請求與結(jié)果 160
8.4.5 在IPython 里使用MPI 161
8.4.6 管理任務(wù)之間的依賴關(guān)系 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 中運(yùn)行Spark 176
8.6 小結(jié) 176
第9 章 真實(shí)案例介紹 177
9.1 用Python 開發(fā)的科學(xué)計算應(yīng)用 177
9.1.1 “每個孩子一臺筆記本”項(xiàng)目用Python 開發(fā)界面 177
9.1.2 ExpEYES——科學(xué)之眼 180
9.1.3 Python 開發(fā)的天氣預(yù)測應(yīng)用程序 181
9.1.4 Python 開發(fā)的航空器概念設(shè)計工具與API 182
9.1.5 OpenQuake 引擎 183
9.1.6 德國西馬克公司的能源效率應(yīng)用程序 184
9.1.7 高能物理數(shù)據(jù)分析的自動代碼生成器 184
9.1.8 Python 的計算化學(xué)應(yīng)用 186
9.2 Python 開發(fā)的盲音觸覺識別系統(tǒng) 187
9.2.1 TAPTools 空中交通管制工具 187
9.2.2 光能效率檢測的嵌入式系統(tǒng) 188
9.3 Python 開發(fā)的科學(xué)計算程序庫 189
9.3.1 Tribon 公司的船舶設(shè)計API 189
9.3.2 分子建模工具箱 189
9.3.3 標(biāo)準(zhǔn)Python程序包 190
9.4 小結(jié) 191
第10 章 科學(xué)計算的最佳實(shí)踐 192
10.1 方案設(shè)計階段的最佳實(shí)踐 192
10.2 功能實(shí)現(xiàn)階段的最佳實(shí)踐 194
10.3 數(shù)據(jù)管理與應(yīng)用部署的最佳實(shí)踐 196
10.4 實(shí)現(xiàn)高性能的最佳實(shí)踐 197
10.5 數(shù)據(jù)隱私與安全的最佳實(shí)踐 198
10.6 測試與維護(hù)的最佳實(shí)踐 198
10.7 Python 常用的最佳實(shí)踐 199
10.8 小結(jié) 200