Python 3.0科學(xué)計(jì)算指南
定 價(jià):69 元
叢書名:數(shù)據(jù)科學(xué)
- 作者:[瑞典]克勞斯·福勒(Claus Führer)簡(jiǎn)· 埃里克·索利姆(Jan Erik Solem)奧利維爾·維迪爾(Olivier Verdier)
- 出版時(shí)間:2018/7/1
- ISBN:9787115481146
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.561-62
- 頁(yè)碼:254
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書旨在通過(guò)實(shí)際的Python 3.0代碼示例展示Python與數(shù)學(xué)應(yīng)用程序的緊密聯(lián)系,介紹將Python中的各種概念用于科學(xué)計(jì)算的方法。
本書共有15章。第1~3章介紹Python中的主要語(yǔ)法元素、基本數(shù)據(jù)類型、容器類型等概念;第4~9章介紹線性代數(shù)、數(shù)組、函數(shù)、類、迭代等與數(shù)學(xué)數(shù)據(jù)類型緊密相關(guān)的內(nèi)容;第10~14章就有關(guān)科學(xué)計(jì)算程序運(yùn)行過(guò)程中錯(cuò)誤處理、輸入輸出、測(cè)試等問(wèn)題進(jìn)行探索,并具體給出了一些綜合實(shí)例,以幫助讀者進(jìn)一步掌握前述章節(jié)所涵蓋的內(nèi)容;第15章介紹符號(hào)計(jì)算的相關(guān)內(nèi)容,旨在讓讀者了解這一常用于推導(dǎo)和驗(yàn)證理論上的數(shù)學(xué)模型和數(shù)值結(jié)果的技術(shù)。
本書特色鮮明,示例生動(dòng)有趣,內(nèi)容易讀易學(xué),既適合Python初學(xué)者和程序員閱讀,也適合高校計(jì)算機(jī)專業(yè)的教師和學(xué)生參考。具有編程經(jīng)驗(yàn)以及科學(xué)計(jì)算的愛(ài)好者也可以將本書作為研究SciPy和NumPy的參考資料。
Python不僅是一種通用的編程語(yǔ)言,更是免費(fèi)且開(kāi)源的語(yǔ)言和環(huán)境,在科學(xué)計(jì)算領(lǐng)域具有巨大的應(yīng)用潛力。
本書以數(shù)學(xué)應(yīng)用為背景介紹Python的相關(guān)知識(shí)。通過(guò)學(xué)習(xí)本書, 你將認(rèn)識(shí)到Python 是一種將科學(xué)計(jì)算與數(shù)學(xué)緊密結(jié)合起來(lái)的強(qiáng)大工具;學(xué)會(huì)使用面向?qū)ο蟮腜ython執(zhí)行計(jì)算任務(wù)的方法,并掌握計(jì)算數(shù)學(xué)的一個(gè)必要構(gòu)建塊——線性代數(shù)及其對(duì)象;學(xué)會(huì)函數(shù)和類的使用方法;熟悉測(cè)試工具并學(xué)習(xí)復(fù)雜的編程示例;通過(guò)Python模塊SymPy開(kāi)啟計(jì)算機(jī)代數(shù)的學(xué)習(xí)之旅。
本書將介紹所有需要掌握的Python知識(shí),以及將這些知識(shí)應(yīng)用于線性代數(shù)、數(shù)組、繪圖、迭代、函數(shù)以及多項(xiàng)式等的方法。
本書旨在幫助你:
● 理解Python的主要語(yǔ)法元素;
● 了解Python中重要和基本的數(shù)據(jù)類型;
● 理解計(jì)算數(shù)學(xué)的一個(gè)必要構(gòu)建塊——線性代數(shù)及其對(duì)象;
● 用Python的matplotlib包創(chuàng)建高質(zhì)量的表格和圖形,以便繪制和可視化結(jié)果;
● 定義和使用函數(shù),并學(xué)會(huì)將它們作為對(duì)象使用;
● 使用SciPy和NumPy包,以受益于其強(qiáng)大的與科學(xué)計(jì)算任務(wù)相關(guān)的數(shù)組數(shù)據(jù)類型;
● 深入理解何時(shí)、以何種方式正確地使用面向?qū)ο蟮腜ython編程;
● 專注于科學(xué)計(jì)算編程中的現(xiàn)代測(cè)試、調(diào)試和分析。
Claus Führer是瑞典隆德大學(xué)科學(xué)計(jì)算系的教授。他曾在許多國(guó)家和教學(xué)機(jī)構(gòu)任教,擁有十分豐富的課堂教學(xué)經(jīng)驗(yàn),所教授的課程涉及各級(jí)數(shù)值分析和工程數(shù)學(xué)的密集程序設(shè)計(jì)。在與工業(yè)界的研究he作中,Claus還開(kāi)發(fā)出了數(shù)值分析軟件,并因此榮獲了2016年度隆德大學(xué)工程學(xué)院教師獎(jiǎng)。
Jan Eric Solem是Python的狂熱愛(ài)好者。他曾任瑞典隆德大學(xué)的副教授,目前是Mapillary公司(一家街景計(jì)算機(jī)視覺(jué)公司)的CEO。他曾是Polar Rose公司的創(chuàng)始人兼CTO,并擔(dān)任人臉識(shí)別專家,還擔(dān)任過(guò)蘋果公司計(jì)算機(jī)視覺(jué)團(tuán)隊(duì)的負(fù)責(zé)人。Jan是世界經(jīng)濟(jì)論壇的技術(shù)先驅(qū)之一,曾憑借圖像分析和模式識(shí)別的論文榮獲2005—2006年度北美論文獎(jiǎng)。他也是《Programming Computer Vision with Python》 一書的作者。
Olivier Verdier于2009年獲得了瑞典隆德大學(xué)的數(shù)學(xué)博士學(xué)位。他也是德國(guó)科隆大學(xué)、挪威特隆赫姆大學(xué)、挪威卑爾根大學(xué)和瑞典烏梅奧大學(xué)的博士后。Oliview Verdier早在2007年就開(kāi)始用Python進(jìn)行科學(xué)計(jì)算,目前是挪威卑爾根大學(xué)數(shù)學(xué)系的副教授。
目錄
第 1章 入門 1
1.1 安裝和配置說(shuō)明 1
1.1.1 安裝 1
1.1.2 Anaconda 2
1.1.3 配置 3
1.1.4 Python Shell 3
1.1.5 執(zhí)行腳本 3
1.1.6 獲取幫助 4
1.1.7 Jupyter – Python筆記本 4
1.2 程序與控制流 4
1.2.1 注釋 5
1.2.2 行連接 5
1.3 基本類型 6
1.3.1 數(shù)值類型 6
1.3.2 字符串 6
1.3.3 變量 7
1.3.4 列表 7
1.3.5 列表運(yùn)算符 8
1.3.6 布爾表達(dá)式 8
1.4 使用循環(huán)來(lái)重復(fù)語(yǔ)句 9
1.4.1 重復(fù)任務(wù) 9
1.4.2 break和else 9
1.5 條件語(yǔ)句 10
1.6 使用函數(shù)封裝代碼 10
1.7 腳本和模塊 11
1.7.1 簡(jiǎn)單的模塊—函數(shù)的
集合 12
1.7.2 使用模塊和命名空間 13
1.8 解釋器 13
1.9 小結(jié) 14
第 2章 變量和基本數(shù)據(jù)類型 15
2.1 變量 15
2.2 數(shù)值類型 16
2.2.1 整數(shù)類型 17
2.2.2 浮點(diǎn)數(shù) 17
2.2.3 復(fù)數(shù) 20
2.3 布爾類型 23
2.3.1 布爾運(yùn)算符 23
2.3.2 布爾類型轉(zhuǎn)換 24
2.3.3 布爾類型自動(dòng)轉(zhuǎn)換 24
2.3.4 and和or的返回值 25
2.3.5 布爾值和整數(shù) 26
2.4 字符串類型 26
2.5 小結(jié) 29
2.6 練習(xí) 30
第3章 容器類型 33
3.1 列表 33
3.1.1 切片 34
3.1.2 步長(zhǎng) 36
3.1.3 列表修改 36
3.1.4 是否屬于列表 37
3.1.5 列表方法 37
3.1.6 原位操作 38
3.1.7 列表合并—zip 39
3.1.8 列表推導(dǎo) 39
3.2 數(shù)組 40
3.3 元組 41
3.4 字典 42
3.4.1 創(chuàng)建和修改字典 42
3.4.2 循環(huán)遍歷字典 43
3.5 集合 44
3.6 容器類型轉(zhuǎn)換 45
3.7 類型檢查 46
3.8 小結(jié) 47
3.9 練習(xí) 47
第4章 線性代數(shù)—數(shù)組 50
4.1 數(shù)組類型概要 50
4.1.1 向量和矩陣 50
4.1.2 索引和切片 52
4.1.3 線性代數(shù)運(yùn)算 52
4.2 數(shù)學(xué)基礎(chǔ) 53
4.2.1 作為函數(shù)的數(shù)組 54
4.2.2 基于元素的運(yùn)算 54
4.2.3 形狀和維數(shù) 54
4.2.4 點(diǎn)運(yùn)算 55
4.3 數(shù)組類型 57
4.3.1 數(shù)組屬性 57
4.3.2 用列表創(chuàng)建數(shù)組 57
4.4 訪問(wèn)數(shù)組項(xiàng) 59
4.4.1 基本數(shù)組切片 59
4.4.2 使用切片修改數(shù)組 61
4.5 數(shù)組構(gòu)造函數(shù) 61
4.6 訪問(wèn)和修改形狀 62
4.6.1 shape函數(shù) 62
4.6.2 維數(shù) 63
4.6.3 重塑 63
4.7 疊加 65
4.8 作用于數(shù)組的函數(shù) 66
4.8.1 通用函數(shù) 66
4.8.2 數(shù)組函數(shù) 68
4.9 SciPy中的線性代數(shù)方法 69
4.9.1 使用LU來(lái)求解多個(gè)線性
方程組 70
4.9.2 使用SVD來(lái)解決最小二乘
問(wèn)題 71
4.9.3 其他方法 72
4.10 小結(jié) 72
4.11 練習(xí) 73
第5章 高級(jí)數(shù)組 75
5.1 數(shù)組視圖和副本 75
5.1.1 數(shù)組視圖 75
5.1.2 切片視圖 76
5.1.3 轉(zhuǎn)置和重塑視圖 76
5.1.4 復(fù)制數(shù)組 76
5.2 數(shù)組比較 77
5.2.1 布爾數(shù)組 77
5.2.2 數(shù)組布爾運(yùn)算 78
5.3 數(shù)組索引 79
5.3.1 使用布爾數(shù)組進(jìn)行索引 79
5.3.2 使用where命令 80
5.4 代碼性能和向量化 81
5.5 廣播 83
5.5.1 數(shù)學(xué)視角 83
5.5.2 廣播數(shù)組 86
5.5.3 典型示例 88
5.6 稀疏矩陣 90
5.6.1 稀疏矩陣格式 91
5.6.2 生成稀疏矩陣 94
5.6.3 稀疏矩陣方法 94
5.7 小結(jié) 95
第6章 繪圖 96
6.1 基本繪圖 96
6.2 格式化 100
6.3 meshgrid和contours函數(shù) 103
6.4 圖像和等值線 106
6.5 matplotlib對(duì)象 108
6.5.1 坐標(biāo)軸對(duì)象 108
6.5.2 修改線條屬性 109
6.5.3 注釋 110
6.5.4 曲線間的填充面積 111
6.5.5 刻度和刻度標(biāo)簽 112
6.6 繪制三維圖 113
6.7 用繪圖制作電影 116
6.8 小結(jié) 117
6.9 練習(xí) 117
第7章 函數(shù) 120
7.1 基本原理 120
7.2 形參和實(shí)參 121
7.2.1 參數(shù)傳遞—通過(guò)位置和
關(guān)鍵字 121
7.2.2 更改實(shí)參 122
7.2.3 訪問(wèn)本地命名空間之外
定義的變量 122
7.2.4 默認(rèn)參數(shù) 123
7.2.5 可變參數(shù) 124
7.3 返回值 125
7.4 遞歸函數(shù) 126
7.5 函數(shù)文檔 128
7.6 函數(shù)是對(duì)象 128
7.7 匿名函數(shù)—lambda
關(guān)鍵字 130
7.8 裝飾器 131
7.9 小結(jié) 132
7.10 練習(xí) 133
第8章 類 135
8.1 類的簡(jiǎn)介 136
8.1.1 類語(yǔ)法 136
8.1.2 _ _init_ _方法 137
8.2 屬性和方法 138
8.2.1 特殊方法 139
8.2.2 彼此依賴的屬性 143
8.2.3 綁定和未綁定方法 145
8.2.4 類屬性 146
8.2.5 類方法 146
8.3 子類和繼承 148
8.4 封裝 151
8.5 裝飾器類 152
8.6 小結(jié) 154
8.7 練習(xí) 154
第9章 迭代 156
9.1 for語(yǔ)句 156
9.2 控制循環(huán)內(nèi)流程 157
9.3 迭代器 158
9.3.1 生成器 159
9.3.2 迭代器是一次性的 159
9.3.3 迭代器工具 160
9.3.4 遞歸序列的生成器 161
9.4 加速收斂 163
9.5 列表填充模式 165
9.5.1 使用append方法來(lái)填充
列表 165
9.5.2 迭代器中的列表 166
9.5.3 存儲(chǔ)生成的值 166
9.6 將迭代器作為列表使用 167
9.6.1 生成器表達(dá)式 167
9.6.2 壓縮迭代器 168
9.7 迭代器對(duì)象 169
9.8 無(wú)限迭代 170
9.8.1 while循環(huán) 170
9.8.2 遞歸 171
9.9 小結(jié) 171
9.10 練習(xí) 172
第 10章 異常處理 175
10.1 什么是異常 175
10.1.1 基本原理 177
10.1.2 用戶定義異常 179
10.1.3 上下文管理器—
with語(yǔ)句 180
10.2 查找錯(cuò)誤:調(diào)試 181
10.2.1 漏洞 182
10.2.2 堆棧 182
10.2.3 Python調(diào)試器 183
10.2.4 調(diào)試命令 185
10.2.5 IPython調(diào)試 186
10.3 小結(jié) 187
第 11章 命名空間、范圍和模塊 188
11.1 命名空間 188
11.2 變量范圍 189
11.3 模塊 191
11.3.1 簡(jiǎn)介 191
11.3.2 IPython模塊 192
11.3.3 變量_ _name_ _ 193
11.3.4 一些有用的模塊 193
11.4 小結(jié) 194
第 12章 輸入和輸出 195
12.1 文件處理 195
12.1.1 文件交互 195
12.1.2 文件是可迭代的 196
12.1.3 文件模式 197
12.2 NumPy方法 198
12.2.1 savetxt 198
12.2.2 loadtxt 198
12.3 Pickling 199
12.4 Shelves 200
12.5 讀寫Matlab數(shù)據(jù)文件 200
12.6 讀寫圖像 201
12.7 小結(jié) 202
第 13章 測(cè)試 203
13.1 手動(dòng)測(cè)試 203
13.2 自動(dòng)測(cè)試 204
13.3 使用unittest包 206
13.4 參數(shù)化測(cè)試 209
13.5 斷言工具 210
13.6 浮點(diǎn)值比較 210
13.7 單元和功能測(cè)試 212
13.8 調(diào)試 213
13.9 測(cè)試發(fā)現(xiàn) 213
13.10 測(cè)量執(zhí)行時(shí)間 213
13.10.1 用魔法函數(shù)計(jì)時(shí) 214
13.10.2 使用Python的timeit
計(jì)時(shí)模塊 215
13.10.3 用上下文管理器
計(jì)時(shí) 216
13.11 小結(jié) 217
13.12 練習(xí) 217
第 14章 綜合示例 219
14.1 多項(xiàng)式 219
14.1.1 理論背景 219
14.1.2 任務(wù) 220
14.2 多項(xiàng)式類 221
14.3 牛頓多項(xiàng)式 225
14.4 譜聚類算法 226
14.5 解決初始值問(wèn)題 230
14.6 小結(jié) 233
14.7 練習(xí) 233
第 15章 符號(hào)計(jì)算—SymPy 235
15.1 什么是符號(hào)計(jì)算 235
15.2 SymPy的基本元素 238
15.2.1 符號(hào)—所有公式的
基礎(chǔ) 238
15.2.2 數(shù)字 239
15.2.3 函數(shù) 239
15.3 基本函數(shù) 241
15.4 符號(hào)線性代數(shù) 243
15.5 SymPy線性代數(shù)方法示例 245
15.6 替換 246
15.7 評(píng)估符號(hào)表達(dá)式 249
15.8 符號(hào)表達(dá)式轉(zhuǎn)化為數(shù)值
函數(shù) 250
15.9 小結(jié) 252
參考文獻(xiàn) 253