Python 3.0科學計算指南

Python 3.0科學計算指南
定價:414
NT $ 327
 

內容簡介

本書旨在通過實際的Python3.0代碼示例展示Python與數學應用程式的緊密聯繫,介紹將Python中的各種概念用於科學計算的方法。

本書共有15章。第1~3章介紹Python中的主要語法元素、基底資料型別、容器類型等概念;第4~9章介紹線性代數、陣列、函數、類、反覆運算等與數學資料類型緊密相關的內容;第10~14章就有關科學計算程式運行過程中錯誤處理、輸入輸出、測試等問題進行探索,並具體給出了一些綜合實例,以説明讀者進一步掌握前述章節所涵蓋的內容;第15章介紹符號計算的相關內容,旨在讓讀者瞭解這一常用於推導和驗證理論上的數學模型和數值結果的技術。

本書特色鮮明,示例生動有趣,內容易讀易學,既適合Python初學者和程式師閱讀,也適合高校電腦專業的教師和學生參考。具有程式設計經驗以及科學計算的愛好者也可以將本書作為研究SciPy和NumPy的參考資料。




 

作者介紹

克勞斯·福勒(Claus Führer)是瑞典隆德大學科學計算系的教授。他曾在許多國家和教學機構任教,擁有十分豐富的課堂教學經驗,所教授的課程涉及各級數值分析和工程數學的密集程式設計。在與工業界的研究合作中,Claus還開發出了數值分析軟體,並因此榮獲了2016年度隆德大學工程學院教師獎。

簡·埃裡克·索利姆(Jan Erik Solem)是Python的狂熱愛好者。他曾任瑞典隆德大學的副教授,目前是Mapillary公司(一家街景電腦視覺公司)的CEO。他曾是Polar Rose公司的創始人兼CTO,並擔任人臉識別專家,還擔任過蘋果公司電腦視覺團隊的負責人。Jan是世界經濟論壇的技術先驅之一,曾憑借圖像分析和模式識別的論文榮獲2005—2006年度北美論文獎。他也是《Programming Computer Vision with Python》一書的作者。

奧利維爾·維迪爾(Olivier Verdier)於2009年獲得了瑞典隆德大學的數學博士學位。他也是德國科隆大學、挪威特隆赫姆大學、挪威卑爾根大學和瑞典烏梅奧大學的博士後。Oliview Verdier早在2007年就開始用Python進行科學計算,目前是挪威卑爾根大學數學系的副教授。
 

目錄

第 1章 入門 1
1.1 安裝和配置說明 1
1.1.1 安裝 1
1.1.2 Anaconda 2
1.1.3 配置 3
1.1.4 Python Shell 3
1.1.5 執行腳本 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 數數值型別 6
1.3.2 字串 6
1.3.3 變數 7
1.3.4 列表 7
1.3.5 列表運算子 8
1.3.6 布林運算式 8
1.4 使用迴圈來重複語句 9
1.4.1 重複任務 9
1.4.2 break和else 9
1.5 條件陳述式 10
1.6 使用函數封裝代碼 10
1.7 腳本和模組 11
1.7.1 簡單的模組—函數的
集合 12
1.7.2 使用模組和命名空間 13
1.8 解譯器 13
1.9 小結 14
第 2章 變數和基底資料型別 15
2.1 變數 15
2.2 數數值型別 16
2.2.1 整數類型 17
2.2.2 浮點數 17
2.2.3 複數 20
2.3 布林類型 23
2.3.1 布林運算子 23
2.3.2 布林類型轉換 24
2.3.3 布林類型自動轉換 24
2.3.4 and和or的返回值 25
2.3.5 布林值和整數 26
2.4 字串類型 26
2.5 小結 29
2.6 練習 30
第3章 容器類型 33
3.1 列表 33
3.1.1 切片 34
3.1.2 步長 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 列表推導 39
3.2 陣列 40
3.3 元組 41
3.4 字典 42
3.4.1 創建和修改字典 42
3.4.2 迴圈遍歷字典 43
3.5 集合 44
3.6 容器類型轉換 45
3.7 類型檢查 46
3.8 小結 47
3.9 練習 47
第4章 線性代數—陣列 50
4.1 陣列類型概要 50
4.1.1 向量和矩陣 50
4.1.2 索引和切片 52
4.1.3 線性代數運算 52
4.2 數學基礎 53
4.2.1 作為函數的陣列 54
4.2.2 基於元素的運算 54
4.2.3 形狀和維數 54
4.2.4 點運算 55
4.3 陣列類型 57
4.3.1 陣列屬性 57
4.3.2 用清單創建陣列 57
4.4 訪問陣列項 59
4.4.1 基本陣列切片 59
4.4.2 使用切片修改陣列 61
4.5 陣列構造函數 61
4.6 訪問和修改形狀 62
4.6.1 shape函數 62
4.6.2 維數 63
4.6.3 重塑 63
4.7 疊加 65
4.8 作用於陣列的函數 66
4.8.1 通用函數 66
4.8.2 陣列函數 68
4.9 SciPy中的線性代數方法 69
4.9.1 使用LU來求解多個線性
方程組 70
4.9.2 使用SVD來解決最小二乘
問題 71
4.9.3 其他方法 72
4.10 小結 72
4.11 練習 73
第5章 高級陣列 75
5.1 陣列視圖和副本 75
5.1.1 陣列視圖 75
5.1.2 切片視圖 76
5.1.3 轉置和重塑視圖 76
5.1.4 複製陣列 76
5.2 陣列比較 77
5.2.1 布林陣列 77
5.2.2 陣列布耳運算 78
5.3 陣列索引 79
5.3.1 使用布林陣列進行索引 79
5.3.2 使用where命令 80
5.4 代碼性能和向量化 81
5.5 廣播 83
5.5.1 數學視角 83
5.5.2 廣播陣列 86
5.5.3 典型示例 88
5.6 疏鬆陣列 90
5.6.1 疏鬆陣列格式 91
5.6.2 生成疏鬆陣列 94
5.6.3 疏鬆陣列方法 94
5.7 小結 95
第6章 繪圖 96
6.1 基本繪圖 96
6.2 格式化 100
6.3 meshgrid和contours函數 103
6.4 圖像和等值線 106
6.5 matplotlib對象 108
6.5.1 坐標軸對象 108
6.5.2 修改線條屬性 109
6.5.3 注釋 110
6.5.4 曲線間的填充面積 111
6.5.5 刻度和刻度標籤 112
6.6 繪製三維圖 113
6.7 用繪圖製作電影 116
6.8 小結 117
6.9 練習 117
第7章 函數 120
7.1 基本原理 120
7.2 形參和實參 121
7.2.1 參數傳遞—通過位置和
關鍵字 121
7.2.2 更改實參 122
7.2.3 訪問本地命名空間之外
定義的變數 122
7.2.4 默認參數 123
7.2.5 可變參數 124
7.3 返回值 125
7.4 遞迴函數 126
7.5 函數文檔 128
7.6 函數是物件 128
7.7 匿名函數—lambda
關鍵字 130
7.8 裝飾器 131
7.9 小結 132
7.10 練習 133
第8章 類 135
8.1 類的簡介 136
8.1.1 類語法 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 小結 154
8.7 練習 154
第9章 反覆運算 156
9.1 for語句 156
9.2 控制迴圈內流程 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方法來填充
列表 165
9.5.2 反覆運算器中的列表 166
9.5.3 存儲生成的值 166
9.6 將反覆運算器作為列表使用 167
9.6.1 生成器運算式 167
9.6.2 壓縮反覆運算器 168
9.7 反覆運算器對象 169
9.8 無限反覆運算 170
9.8.1 while迴圈 170
9.8.2 遞迴 171
9.9 小結 171
9.10 練習 172
第 10章 異常處理 175
10.1 什麼是異常 175
10.1.1 基本原理 177
10.1.2 用戶定義異常 179
10.1.3 上下文管理器—
with語句 180
10.2 查找錯誤:調試 181
10.2.1 漏洞 182
10.2.2 堆疊 182
10.2.3 Python調試器 183
10.2.4 調試命令 185
10.2.5 IPython調試 186
10.3 小結 187
第 11章 命名空間、範圍和模組 188
11.1 命名空間 188
11.2 變數範圍 189
11.3 模組 191
11.3.1 簡介 191
11.3.2 IPython模組 192
11.3.3 變數_ _name_ _ 193
11.3.4 一些有用的模組 193
11.4 小結 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資料檔案 200
12.6 讀寫圖像 201
12.7 小結 202
第 13章 測試 203
13.1 手動測試 203
13.2 自動測試 204
13.3 使用unittest包 206
13.4 參數化測試 209
13.5 斷言工具 210
13.6 浮點值比較 210
13.7 單元和功能測試 212
13.8 調試 213
13.9 測試發現 213
13.10 測量執行時間 213
13.10.1 用魔法函數計時 214
13.10.2 使用Python的timeit
計時模組 215
13.10.3 用上下文管理器
計時 216
13.11 小結 217
13.12 練習 217
第 14章 綜合示例 219
14.1 多項式 219
14.1.1 理論背景 219
14.1.2 任務 220
14.2 多項式類 221
14.3 牛頓多項式 225
14.4 譜聚類演算法 226
14.5 解決初始值問題 230
14.6 小結 233
14.7 練習 233
第 15章 符號計算—SymPy 235
15.1 什麼是符號計算 235
15.2 SymPy的基本元素 238
15.2.1 符號—所有公式的
基礎 238
15.2.2 數字 239
15.2.3 函數 239
15.3 基本函數 241
15.4 符號線性代數 243
15.5 SymPy線性代數方法示例 245
15.6 替換 246
15.7 評估符號運算式 249
15.8 符號運算式轉化為數值
函數 250
15.9 小結 252
參考文獻 253
網路書店 類別 折扣 價格
  1. 新書
    79
    $327