python科學(xué)計(jì)算是張若愚先生一個(gè)著作,張若愚先生畢業(yè)于華中理工大學(xué)(現(xiàn)華中科技大學(xué))通信工程專業(yè),2004年獲日本姬路工業(yè)大學(xué)(現(xiàn)兵庫縣立大學(xué))碩士學(xué)位。python科學(xué)計(jì)算介紹如何用Python開發(fā)科學(xué)計(jì)算的應(yīng)用程序,除了介紹數(shù)值計(jì)算之外,還著重介紹如何制作交互式的2D、3D圖像,如何設(shè)計(jì)精巧的程序界面,如何與C語言編寫的高速計(jì)算程序結(jié)合,如何編寫聲音、圖像處理算法等內(nèi)容。書中涉及的Python擴(kuò)展庫包括NumPy、SciPy、SymPy、matplotlib、Traits、TraitsUI、Chaco、TVTK、Mayavi、VPython、OpenCV等,涉及的應(yīng)用領(lǐng)域包括數(shù)值運(yùn)算、符號運(yùn)算、二維圖表、三維數(shù)據(jù)可視化、三維動畫演示、圖像處理以及界面設(shè)計(jì)等。
python科學(xué)計(jì)算目錄
第1章 軟件包的安裝和介紹 1
1.1 Python簡介 1
1.2 安裝軟件包 2
1.2.1 Python(x,y) 2
1.2.2 Enthought Python Distribution
(EPD) 3
1.3 方便的開發(fā)工具 3
1.3.1 IPython 4
1.3.2 Spyder 8
1.3.3 Wing IDE 101 12
1.4 函數(shù)庫介紹 13
1.4.1 數(shù)值計(jì)算庫 13
1.4.2 符號計(jì)算庫 14
1.4.3 界面設(shè)計(jì) 14
1.4.4 繪圖與可視化 14
1.4.5 圖像處理和計(jì)算機(jī)視覺 15
第2章 NumPy——快速處理數(shù)據(jù) 16
2.1 ndarray對象 16
2.1.1 創(chuàng)建數(shù)組 16
2.1.2 存取元素 21
2.1.3 多維數(shù)組 24
2.1.4 結(jié)構(gòu)數(shù)組 29
2.1.5 內(nèi)存結(jié)構(gòu) 32
2.2 ufunc運(yùn)算 35
2.2.1 四則運(yùn)算 37
2.2.2 比較和布爾運(yùn)算 39
2.2.3 自定義ufunc函數(shù) 40
2.2.4 廣播 42
2.2.5 ufunc函數(shù)的方法 46
2.3 多維數(shù)組的下標(biāo)存取 48
2.3.1 下標(biāo)對象 48
2.3.2 整數(shù)數(shù)組作為下標(biāo) 49
2.3.3 一個(gè)復(fù)雜的例子 51
2.3.4 布爾數(shù)組作為下標(biāo) 53
2.4 龐大的函數(shù)庫 54
2.4.1 求和、平均值、方差 54
2.4.2 最值和排序 55
2.4.3 多項(xiàng)式函數(shù) 57
2.4.4 分段函數(shù) 60
2.4.5 統(tǒng)計(jì)函數(shù) 62
2.5 線性代數(shù) 65
2.5.1 各種乘積運(yùn)算 65
2.5.2 解線性方程組 67
2.6 掩碼數(shù)組 69
2.7 文件存取 72
2.8 內(nèi)存映射數(shù)組 75
第3章 SciPy——數(shù)值計(jì)算庫 79
3.1 常數(shù)和特殊函數(shù) 79
3.2 優(yōu)化——optimize 81
3.2.1 最小二乘擬合 81
3.2.2 函數(shù)最小值 84
3.2.3 非線性方程組求解 86
3.3 插值——interpolate 88
3.3.1 B樣條曲線插值 88
3.3.2 外推和Spline擬合 90
3.3.3 二維插值 91
3.4 數(shù)值積分——integrate 93
3.4.1 球的體積 93
3.4.2 解常微分方程組 95
3.5 信號處理——signal 97
3.5.1 中值濾波 97
3.5.2 濾波器設(shè)計(jì) 98
3.6 圖像處理——ndimage 100
3.6.1 膨脹和腐蝕 101
3.6.2 Hit和Miss 102
3.7 統(tǒng)計(jì)——stats 105
3.7.1 連續(xù)和離散概率分布 105
3.7.2 二項(xiàng)、泊松、伽瑪分布 108
3.8 嵌入C語言程序——weave 112
第4章 SymPy——符號運(yùn)算好幫手 115
4.1 從例子開始 115
4.1.1 封面上的經(jīng)典公式 115
4.1.2 球體體積 117
4.2 數(shù)學(xué)表達(dá)式 119
4.2.1 符號 119
4.2.2 數(shù)值 121
4.2.3 運(yùn)算符和函數(shù) 122
4.3 符號運(yùn)算 125
4.3.1 表達(dá)式變換和化簡 125
4.3.2 方程 128
4.3.3 微分 129
4.3.4 微分方程 130
4.3.5 積分 131
4.4 其他功能 133
4.4.1 平面幾何 133
4.4.2 繪圖 135
第5章 matplotlib——繪制精美
的圖表 139
5.1 快速繪圖 139
5.1.1 使用pyplot模塊繪圖 139
5.1.2 以面向?qū)ο蠓绞嚼L圖 142
5.1.3 配置屬性 143
5.1.4 繪制多個(gè)子圖 145
5.1.5 配置文件 147
5.1.6 在圖表中顯示中文 149
5.2 Artist對象 152
5.2.1 Artist對象的屬性 154
5.2.2 Figure容器 155
5.2.3 Axes容器 156
5.2.4 Axis容器 159
5.2.5 Artist對象的關(guān)系 163
5.3 坐標(biāo)變換和注釋 164
5.3.1 4種坐標(biāo)系 167
5.3.2 坐標(biāo)變換的步驟 169
5.3.3 制作陰影效果 173
5.3.4 添加注釋 174
5.4 繪圖函數(shù)簡介 177
5.4.1 對數(shù)坐標(biāo)圖 177
5.4.2 極坐標(biāo)圖 178
5.4.3 柱狀圖 179
5.4.4 散列圖 180
5.4.5 圖像 181
5.4.6 等值線圖 184
5.4.7 三維繪圖 187
第6章 Traits——為Python添加類型
定義 190
6.1 開發(fā)背景 190
6.2 Trait屬性的功能 192
6.3 Trait類型對象 196
6.4 Trait的元數(shù)據(jù) 198
6.5 預(yù)定義的Trait類型 200
6.6 Property屬性 204
6.7 Trait屬性監(jiān)聽 206
6.8 Event和Button屬性 210
6.9 Trait屬性的從屬關(guān)系 211
6.10 動態(tài)添加Trait屬性 213
6.11 創(chuàng)建自己的Trait類型 215
6.11.1 從TraitType繼承 215
6.11.2 使用Trait() 217
6.11.3 定義TraitHandler類 219
第7章 TraitsUI——輕松制作用戶
界面 221
7.1 默認(rèn)界面 221
7.2 用View定義界面 222
7.2.1 外部視圖和內(nèi)部視圖 222
7.2.2 多模型視圖 226
7.2.3 Group對象 228
7.2.4 配置視圖 231
7.3 用Handler控制界面和模型 232
7.3.1 用Handler處理事件 233
7.3.2 Controller和UIInfo對象 237
7.3.3 響應(yīng)Trait屬性的事件 238
7.4 屬性編輯器 240
7.4.1 編輯器演示程序 241
7.4.2 對象編輯器 243
7.4.3 字符串列表編輯器 248
7.4.4 對象列表編輯器 250
7.5 菜單、工具條和狀態(tài)欄 252
7.6 設(shè)計(jì)自己的編輯器 255
7.6.1 Trait編輯器的工作原理 255
7.6.2 制作matplotlib的編輯器 259
7.6.3 CSV數(shù)據(jù)繪圖工具 262
第8章 Chaco——交互式圖表 264
8.1 面向腳本繪圖 264
8.2 面向應(yīng)用繪圖 265
8.2.1 多條曲線 267
8.2.2 Plot對象的結(jié)構(gòu) 271
8.2.3 編輯繪圖屬性 275
8.2.4 容器(Container) 276
8.3 添加交互工具 279
8.3.1 平移和縮放 279
8.3.2 選取范圍 282
8.3.3 選取數(shù)據(jù)點(diǎn) 284
8.3.4 套索工具 287
8.4 二次開發(fā) 289
8.4.1 用Kiva庫在數(shù)組上繪圖 290
8.4.2 Enable庫的組件 292
8.4.3 設(shè)計(jì)圓形選擇工具 297
8.4.4 制作動畫演示 301
第9章 TVTK——數(shù)據(jù)的三維可視化 303
9.1 流水線(Pipeline) 304
9.1.1 顯示圓錐 304
9.1.2 用ivtk觀察流水線 307
9.2 數(shù)據(jù)集(Dataset) 313
9.2.1 ImageData 313
9.2.2 RectilinearGrid 318
9.2.3 StructuredGrid 319
9.2.4 PolyData 321
9.3 可視化實(shí)例 324
9.3.1 切面 325
9.3.2 等值面 330
9.3.3 流線 333
9.4 TVTK的改進(jìn) 337
9.4.1 TVTK的基本用法 338
9.4.2 Trait屬性 339
9.4.3 序列化(Pickling) 339
9.4.4 集合迭代 340
9.4.5 數(shù)組操作 341
第10章 Mayavi——更方便的可視化 343
10.1 用mlab快速繪圖 343
10.1.1 點(diǎn)和線 343
10.1.2 Mayavi的流水線 345
10.1.3 二維圖像的可視化 348
10.1.4 網(wǎng)格面 352
10.1.5 修改和控制流水線 356
10.1.6 標(biāo)量場 358
10.1.7 矢量場 361
10.2 Mayavi和TVTK之間
的關(guān)系 363
10.2.1 顯示TVTK流水線 363
10.2.2 兩條流水線之間的關(guān)系 365
10.3 Mayavi應(yīng)用程序 367
10.3.1 操作流水線 368
10.3.2 命令行和對象瀏覽器 371
10.4 將Mayavi嵌入到界面中 374
第11章 VPython——制作3D演示
動畫 378
11.1 場景、物體和照相機(jī) 378
11.1.1 控制場景窗口 380
11.1.2 控制照相機(jī) 383
11.1.3 模型的屬性 384
11.1.4 三維模型 387
11.2 制作動畫演示 390
11.2.1 簡單動畫 390
11.2.2 盒子中反彈的球 391
11.3 與場景交互 393
11.3.1 響應(yīng)鍵盤事件 394
11.3.2 響應(yīng)鼠標(biāo)事件 394
11.4 用界面控制場景 397
11.5 創(chuàng)建復(fù)雜模型 400
11.5.1 faces()的用法 400
11.5.2 讀入模型數(shù)據(jù) 402
第12章 OpenCV——圖像處理和計(jì)算機(jī)
視覺 408
12.1 存儲圖像數(shù)據(jù)的Mat對象 409
12.1.1 Mat對象和NumPy數(shù)組 410
12.1.2 像素點(diǎn)類型 414
12.1.3 其他數(shù)據(jù)類型 415
12.1.4 Vector類型 417
12.1.5 在圖像上繪圖 418
12.2 圖像處理 421
12.2.1 二維卷積 421
12.2.2 形態(tài)學(xué)運(yùn)算 424
12.2.3 填充——floodFill 426
12.2.4 去瑕疵——inpaint 427
12.3 圖像變換 428
12.3.1 幾何變換 428
12.3.2 重映射——remap 430
12.3.3 直方圖統(tǒng)計(jì) 433
12.3.4 二維離散傅立葉變換 437
12.4 圖像識別 440
12.4.1 用霍夫變換檢測直線
和圓 440
12.4.2 圖像分割 444
12.4.3 用SURF進(jìn)行特征匹配 450
第13章 數(shù)據(jù)和文件 453
13.1 聲音的輸入輸出 453
13.1.1 讀寫WAV文件 453
13.1.2 用pyAudio播放和錄音 456
13.2 視頻的輸入輸出 459
13.2.1 讀寫視頻文件 459
13.2.2 安裝視頻編碼 464
13.3 讀寫HDF5文件 465
13.4 讀寫Excel文件 469
13.4.1 寫Excel文件 469
13.4.2 讀Excel文件 471
第14章 數(shù)字信號系統(tǒng) 473
14.1 FIR和IIR濾波器 473
14.2 FIR濾波器設(shè)計(jì) 477
14.2.1 用firwin()設(shè)計(jì)濾波器 479
14.2.2 用remez()設(shè)計(jì)濾波器 481
14.2.3 濾波器的級聯(lián) 483
14.3 IIR濾波器設(shè)計(jì) 485
14.3.1 巴特沃斯低通濾波器 485
14.3.2 雙線性變換 487
14.3.3 濾波器的頻帶轉(zhuǎn)換 490
14.4 數(shù)字濾波器的頻率響應(yīng) 494
14.5 二次均衡濾波器設(shè)計(jì)工具 497
14.6 零相位濾波器 500
14.7 重取樣 501
第15章 頻域信號處理 505
15.1 FFT演示程序 505
15.1.1 FFT知識復(fù)習(xí) 505
15.1.2 合成時(shí)域信號 509
15.1.3 三角波FFT演示程序 511
15.2 觀察信號的頻譜 512
15.2.1 窗函數(shù) 515
15.2.2 頻譜平均 517
15.2.3 譜圖 519
15.3 卷積運(yùn)算 522
15.3.1 快速卷積 522
15.3.2 分段運(yùn)算 524
15.4 信號處理 526
15.4.1 基本框架 527
15.4.2 頻域?yàn)V波器 528
15.4.3 頻率變調(diào)處理 530
15.4.4 用譜圖差減法降噪 531
15.5 Hilbert變換 532
第16章 用C語言提高計(jì)算效率 537
16.1 用ctypes調(diào)用DLL庫 537
16.2 用Weave嵌入C++程序 541
16.2.1 Weave的工作原理 541
16.2.2 處理NumPy數(shù)組 543
16.2.3 使用blitz()提速 546
16.2.4 擴(kuò)展模塊 548
16.3 用Cython將Python編譯
成C 549
16.3.1 編譯Cython程序 549
16.3.2 提高計(jì)算效率 550
16.3.3 快速訪問NumPy數(shù)組 553
16.4 用SWIG創(chuàng)建擴(kuò)展模塊 555
16.4.1 SWIG的調(diào)用方法
和實(shí)例 555
16.4.2 SWIG基礎(chǔ) 558
16.4.3 SWIG處理NumPy數(shù)組 566
第17章 自適應(yīng)濾波器 571
17.1 自適應(yīng)濾波器簡介 571
17.1.1 系統(tǒng)識別 571
17.1.2 信號預(yù)測 572
17.1.3 信號均衡 572
17.2 NLMS計(jì)算公式 573
17.3 用NumPy實(shí)現(xiàn)NLMS算法 575
17.3.1 系統(tǒng)辨識模擬 577
17.3.2 信號均衡模擬 579
17.3.3 卷積逆運(yùn)算 581
17.4 用C語言加速NLMS運(yùn)算 583
17.4.1 用SWIG編寫擴(kuò)展模塊 583
17.4.2 用Weave嵌入C++程序 586
第18章 單擺和雙擺模擬 588
18.1 單擺模擬 588
18.1.1 小角度時(shí)的擺動周期 589
18.1.2 大角度時(shí)的擺動周期 590
18.2 雙擺模擬 592
18.2.1 公式推導(dǎo) 592
18.2.2 微分方程的數(shù)值解 595
18.2.3 動畫演示 598
第19章 分形幾何 599
19.1 Mandelbrot集合 599
19.1.1 使用NumPy加速計(jì)算 601
19.1.2 使用Weave加速計(jì)算 603
19.1.3 連續(xù)的逃逸時(shí)間 604
19.1.4 Mandelbrot演示程序 605
19.2 迭代函數(shù)系統(tǒng)(IFS) 606
19.2.1 二維仿射變換 610
19.2.2 迭代函數(shù)系統(tǒng)設(shè)計(jì)器 610
19.3 L-System分形 613
19.4 分形山脈 616
19.4.1 一維中點(diǎn)移位法 616
19.4.2 二維中點(diǎn)移位法 618
19.4.3 菱形方形算法 619
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版