目 錄
         第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 方便的開發工具 ..............................3
         1.3.1 IPython ........................................... 4
         1.3.2 Spyder ............................................ 8
         1.3.3 Wing IDE 101 .............................. 12
         1.4 函數庫介紹 ....................................13
         1.4.1 數值計算庫 ................................. 13
         1.4.2 符號計算庫 ................................. 14
         1.4.3 界麵設計 ..................................... 14
         1.4.4 繪圖與可視化 ............................. 14
         1.4.5 圖像處理和計算機視覺 .............. 15
         第2章 NumPy——快速處理數據 .......... 16
         2.1 ndarray對象 ...................................16
         2.1.1 創建數組 ..................................... 16
         2.1.2 存取元素 ..................................... 21
         2.1.3 多維數組 ..................................... 24
         2.1.4 結構數組 ..................................... 29
         2.1.5 內存結構 ..................................... 32
         2.2 ufunc運算 ......................................35
         2.2.1 四則運算 ..................................... 37
         2.2.2 比較和布爾運算 ......................... 39
         2.2.3 自定義ufunc函數 ...................... 40
         2.2.4 廣播 ............................................. 42
         2.2.5 ufunc函數的方法 ....................... 46
         2.3 多維數組的下標存取 ....................48
         2.3.1 下標對象 ..................................... 48
         2.3.2 整數數組作為下標 ..................... 49
         2.3.3 一個復雜的例子 ......................... 51
         2.3.4 布爾數組作為下標 ..................... 53
         2.4 龐大的函數庫 ............................... 54
         2.4.1 求和、平均值、方差 ................. 54
         2.4.2 最值和排序 ................................. 55
         2.4.3 多項式函數 ................................. 57
         2.4.4 分段函數 ..................................... 60
         2.4.5 統計函數 ..................................... 62
         2.5 綫性代數 ....................................... 65
         2.5.1 各種乘積運算 ............................. 65
         2.5.2 解綫性方程組 ............................. 67
         2.6 掩碼數組 ....................................... 69
         2.7 文件存取 ....................................... 72
         2.8 內存映射數組 ............................... 75
         第3章 SciPy——數值計算庫 ................. 79
         3.1 常數和特殊函數 ........................... 79
         3.2 優化——optimize .......................... 81
         3.2.1 最小二乘擬閤 ............................. 81
         3.2.2 函數最小值 ................................. 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 數值積分——integrate .................. 93
         3.4.1 球的體積 ..................................... 93
         3.4.2 解常微分方程組 ......................... 95
         3.5 信號處理——signal ....................... 97
         VIII
         Python 科學計算
         目 錄
         3.5.1 中值濾波 ..................................... 97
         3.5.2 濾波器設計 ................................. 98
         3.6 圖像處理——ndimage .................100
         3.6.1 膨脹和腐蝕 ............................... 101
         3.6.2 Hit和Miss ................................. 102
         3.7 統計——stats ................................105
         3.7.1 連續和離散概率分布................ 105
         3.7.2 二項、泊鬆、伽瑪分布 ............ 108
         3.8 嵌入C語言程序——weave ........112
         第4章 SymPy——符號運算好幫手 .... 115
         4.1 從例子開始 ..................................115
         4.1.1 封麵上的經典公式.................... 115
         4.1.2 球體體積 ................................... 117
         4.2 數學錶達式 ..................................119
         4.2.1 符號 ........................................... 119
         4.2.2 數值 ........................................... 121
         4.2.3 運算符和函數 ........................... 122
         4.3 符號運算 ......................................125
         4.3.1 錶達式變換和化簡.................... 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 以麵嚮對象方式繪圖................ 142
         5.1.3 配置屬性 ................................... 143
         5.1.4 繪製多個子圖 ........................... 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對象的關係 ..................... 163
         5.3 坐標變換和注釋 ......................... 164
         5.3.1 4種坐標係 ................................ 167
         5.3.2 坐標變換的步驟 ....................... 169
         5.3.3 製作陰影效果 ........................... 173
         5.3.4 添加注釋 ................................... 174
         5.4 繪圖函數簡介 ............................. 177
         5.4.1 對數坐標圖 ............................... 177
         5.4.2 極坐標圖 ................................... 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 開發背景 ..................................... 190
         6.2 Trait屬性的功能 ......................... 192
         6.3 Trait類型對象 ............................. 196
         6.4 Trait的元數據 ............................. 198
         6.5 預定義的Trait類型 .................... 200
         6.6 Property屬性 ............................... 204
         6.7 Trait屬性監聽 ............................. 206
         6.8 Event和Button屬性 .................. 210
         6.9 Trait屬性的從屬關係 ................. 211
         6.10 動態添加Trait屬性 .................. 213
         6.11 創建自己的Trait類型 .............. 215
         6.11.1 從TraitType繼承 ................. 215
         6.11.2 使用Trait() ............................ 217
         6.11.3 定義TraitHandler類 ............. 219
         IX
         目
         錄
         第7章 TraitsUI——輕鬆製作用戶 界麵 ......................................... 221
         7.1 默認界麵 ......................................221
         7.2 用View定義界麵 ........................222
         7.2.1 外部視圖和內部視圖................ 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 響應Trait屬性的事件 .............. 238
         7.4 屬性編輯器 ..................................240
         7.4.1 編輯器演示程序 ....................... 241
         7.4.2 對象編輯器 ............................... 243
         7.4.3 字符串列錶編輯器.................... 248
         7.4.4 對象列錶編輯器 ....................... 250
         7.5 菜單、工具條和狀態欄 ..............252
         7.6 設計自己的編輯器 ......................255
         7.6.1 Trait編輯器的工作原理 ........... 255
         7.6.2 製作matplotlib的編輯器 ......... 259
         7.6.3 CSV數據繪圖工具 ................... 262
         第8章 Chaco——交互式圖錶 ............. 264
         8.1 麵嚮腳本繪圖 ..............................264
         8.2 麵嚮應用繪圖 ..............................265
         8.2.1 多條麯綫 ................................... 267
         8.2.2 Plot對象的結構 ........................ 271
         8.2.3 編輯繪圖屬性 ........................... 275
         8.2.4 容器(Container) ......................... 276
         8.3 添加交互工具 ..............................279
         8.3.1 平移和縮放 ............................... 279
         8.3.2 選取範圍 ................................... 282
         8.3.3 選取數據點 ............................... 284
         8.3.4 套索工具 ................................... 287
         8.4 二次開發 ......................................289
         8.4.1 用Kiva庫在數組上繪圖 .......... 290
         8.4.2 Enable庫的組件 ....................... 292
         8.4.3 設計圓形選擇工具 ................... 297
         8.4.4 製作動畫演示 ........................... 301
         第9章 TVTK——數據的三維可視化 .... 303
         9.1 流水綫(Pipeline) .......................... 304
         9.1.1 顯示圓錐 ................................... 304
         9.1.2 用ivtk觀察流水綫 ................... 307
         9.2 數據集(Dataset) ........................... 313
         9.2.1 ImageData .................................. 313
         9.2.2 RectilinearGrid ........................... 318
         9.2.3 StructuredGrid............................ 319
         9.2.4 PolyData .................................... 321
         9.3 可視化實例 ................................. 324
         9.3.1 切麵 ........................................... 325
         9.3.2 等值麵 ....................................... 330
         9.3.3 流綫 ........................................... 333
         9.4 TVTK的改進 .............................. 337
         9.4.1 TVTK的基本用法 .................... 338
         9.4.2 Trait屬性 ................................... 339
         9.4.3 序列化(Pickling) ........................ 339
         9.4.4 集閤迭代 ................................... 340
         9.4.5 數組操作 ................................... 341
         第10章 Mayavi——更方便的可視化 .... 343
         10.1 用mlab快速繪圖 ..................... 343
         10.1.1 點和綫 ................................... 343
         10.1.2 Mayavi的流水綫 .................. 345
         10.1.3 二維圖像的可視化 ............... 348
         10.1.4 網格麵 ................................... 352
         10.1.5 修改和控製流水綫 ............... 356
         10.1.6 標量場 ................................... 358
         10.1.7 矢量場 ................................... 361
         10.2 Mayavi和TVTK之間 的關係 ....................................... 363
         10.2.1 顯示TVTK流水綫 .............. 363
         10.2.2 兩條流水綫之間的關係 ....... 365
         X
         Python 科學計算
         目 錄
         10.3 Mayavi應用程序 .......................367
         10.3.1 操作流水綫 ........................... 368
         10.3.2 命令行和對象瀏覽器 ........... 371
         10.4 將Mayavi嵌入到界麵中 ..........374
         第11章 VPython——製作3D演示 動畫 ...................................... 378
         11.1 場景、物體和照相機 ................378
         11.1.1 控製場景窗口 ....................... 380
         11.1.2 控製照相機 ........................... 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 響應鍵盤事件 ....................... 394
         11.3.2 響應鼠標事件 ....................... 394
         11.4 用界麵控製場景 ........................397
         11.5 創建復雜模型 ............................400
         11.5.1 faces()的用法 ........................ 400
         11.5.2 讀入模型數據 ....................... 402
         第12章 OpenCV——圖像處理和計算機 視覺 ...................................... 408
         12.1 存儲圖像數據的Mat對象 ........409
         12.1.1 Mat對象和NumPy數組 ..... 410
         12.1.2 像素點類型 ........................... 414
         12.1.3 其他數據類型 ....................... 415
         12.1.4 Vector類型 ........................... 417
         12.1.5 在圖像上繪圖 ....................... 418
         12.2 圖像處理 ....................................421
         12.2.1 二維捲積 ............................... 421
         12.2.2 形態學運算 ........................... 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 直方圖統計 ........................... 433
         12.3.4 二維離散傅立葉變換 ........... 437
         12.4 圖像識彆 ................................... 440
         12.4.1 用霍夫變換檢測直綫 和圓 ....................................... 440
         12.4.2 圖像分割 ............................... 444
         12.4.3 用SURF進行特徵匹配 ....... 450
         第13章 數據和文件 ............................ 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章 數字信號係統 ......................... 473
         14.1 FIR和IIR濾波器 ..................... 473
         14.2 FIR濾波器設計 ........................ 477
         14.2.1 用firwin()設計濾波器 .......... 479
         14.2.2 用remez()設計濾波器 .......... 481
         14.2.3 濾波器的級聯 ....................... 483
         14.3 IIR濾波器設計 ......................... 485
         14.3.1 巴特沃斯低通濾波器 ........... 485
         14.3.2 雙綫性變換 ........................... 487
         14.3.3 濾波器的頻帶轉換 ............... 490
         14.4 數字濾波器的頻率響應 ........... 494
         14.5 二次均衡濾波器設計工具 ....... 497
         14.6 零相位濾波器 ........................... 500
         14.7 重取樣 ....................................... 501
         XI
         目
         錄
         第15章 頻域信號處理 ........................ 505
         15.1 FFT演示程序 ............................505
         15.1.1 FFT知識復習 ....................... 505
         15.1.2 閤成時域信號 ....................... 509
         15.1.3 三角波FFT演示程序 .......... 511
         15.2 觀察信號的頻譜 ........................512
         15.2.1 窗函數 ................................... 515
         15.2.2 頻譜平均 ............................... 517
         15.2.3 譜圖 ....................................... 519
         15.3 捲積運算 ....................................522
         15.3.1 快速捲積 ............................... 522
         15.3.2 分段運算 ............................... 524
         15.4 信號處理 ....................................526
         15.4.1 基本框架 ............................... 527
         15.4.2 頻域濾波器 ........................... 528
         15.4.3 頻率變調處理 ....................... 530
         15.4.4 用譜圖差減法降噪 ............... 531
         15.5 Hilbert變換 ................................532
         第16章 用C語言提高計算效率 ......... 537
         16.1 用ctypes調用DLL庫 ..............537
         16.2 用Weave嵌入C++程序 ...........541
         16.2.1 Weave的工作原理 ............... 541
         16.2.2 處理NumPy數組 ................. 543
         16.2.3 使用blitz()提速..................... 546
         16.2.4 擴展模塊 ............................... 548
         16.3 用Cython將Python編譯 成C ............................................549
         16.3.1 編譯Cython程序 ................. 549
         16.3.2 提高計算效率 ....................... 550
         16.3.3 快速訪問NumPy數組 ......... 553
         16.4 用SWIG創建擴展模塊 ............555
         16.4.1 SWIG的調用方法 和實例 .................................. 555
         16.4.2 SWIG基礎 ............................ 558
         16.4.3 SWIG處理NumPy數組 ...... 566
         第17章 自適應濾波器 ......................... 571
         17.1 自適應濾波器簡介 ................... 571
         17.1.1 係統識彆 ............................... 571
         17.1.2 信號預測 ............................... 572
         17.1.3 信號均衡 ............................... 572
         17.2 NLMS計算公式 ....................... 573
         17.3 用NumPy實現NLMS算法 .... 575
         17.3.1 係統辨識模擬 ....................... 577
         17.3.2 信號均衡模擬 ....................... 579
         17.3.3 捲積逆運算 ........................... 581
         17.4 用C語言加速NLMS運算...... 583
         17.4.1 用SWIG編寫擴展模塊 ....... 583
         17.4.2 用Weave嵌入C++程序 ...... 586
         第18章 單擺和雙擺模擬 ..................... 588
         18.1 單擺模擬 ................................... 588
         18.1.1 小角度時的擺動周期 ........... 589
         18.1.2 大角度時的擺動周期 ........... 590
         18.2 雙擺模擬 ................................... 592
         18.2.1 公式推導 ............................... 592
         18.2.2 微分方程的數值解 ............... 595
         18.2.3 動畫演示 ............................... 598
         第19章 分形幾何 ................................ 599
         19.1 Mandelbrot集閤 ........................ 599
         19.1.1 使用NumPy加速計算 ......... 601
         19.1.2 使用Weave加速計算 .......... 603
         19.1.3 連續的逃逸時間 ................... 604
         19.1.4 Mandelbrot演示程序 ........... 605
         19.2 迭代函數係統(IFS) ................... 606
         19.2.1 二維仿射變換 ....................... 610
         19.2.2 迭代函數係統設計器 ........... 610
         19.3 L-System分形 ........................... 613
         19.4 分形山脈 ................................... 616
         19.4.1 一維中點移位法 ................... 616
         19.4.2 二維中點移位法 ................... 618
         19.4.3 菱形方形算法 ....................... 619
      · · · · · ·     (
收起)