Python科學計算(第2版)

Python科學計算(第2版)
定價:708
NT $ 616
  • 作者:張若愚
  • 出版社:清華大學出版社
  • 出版日期:2016-04-01
  • 語言:簡體中文
  • ISBN10:7302426589
  • ISBN13:9787302426585
  • 裝訂:716頁 / 普通級 / 2-1
 

內容簡介

張若愚,畢業於華中理工大學(現華中科技大學)通信工程專業,2004年獲日本姬路工業大學(現兵庫縣立大學)碩士學位。畢業後於日本神戶制鋼綜合研究所從事研究開發工作至今,研究方向為:嵌入式DSP信號處理系統開發,嵌入式MCU控制系統開發,工業控制軟件開發,信號處理、數據處理以及生產系統的計算機模擬。在工作中他積極采用Python作為主要編程語言,在數據處理、信號分析、工業控制、算法模擬等領域取得了較好的研究成果。已完成的研究課題有:嵌入式聲音分離系統、車載音響設備、超聲波探傷系統、壓縮機系統的數字模擬等。

本書詳細介紹Python科學計算中最常用的擴展庫NumPy、SciPy、matplotlib、Pandas、SymPy、TTK、Mayavi、OpenCV、Cython,涉及數值計算、界面制作、三維可視化、圖像處理、提高運算效率等多方面的內容。所附光盤中包含所有章節的Notebook以及便攜式運行環境WinPython,以方便讀者運行書中所有實例。

張若愚,畢業於華中理工大學(現華中科技大學)通信工程專業,2004年獲日本姬路工業大學(現兵庫縣立大學)碩士學位。畢業後於日本神戶制鋼綜合研究所從事研究開發工作至今,研究方向為:嵌入式DSP信號處理系統開發,嵌入式MCU控制系統開發,工業控制軟件開發,信號處理、數據處理以及生產系統的計算機模擬。在工作中他積極采用Python作為主要編程語言,在數據處理、信號分析、工業控制、算法模擬等領域取得了較好的研究成果。已完成的研究課題有:嵌入式聲音分離系統、車載音響設備、超聲波探傷系統、壓縮機系統的數字模擬等。
 

目錄

第1章Python科學計算環境的安裝與簡介1
1.1Python簡介1
1.1.1Python2還是Python31
1.1.2開發環境2
1.1.3集成開發環境(IDE)5
1.2IPython Notebook入門9
1.2.1基本操作10
1.2.2魔法(Magic)命令12
1.2.3Notebook的顯示系統20
1.2.4定制IPython Notebook24
1.3擴展庫介紹27
1.3.1數值計算庫27
1.3.2符號計算庫28
1.3.3繪圖與可視化28
1.3.4數據處理和分析29
1.3.5界面設計30
1.3.6圖像處理和計算機視覺31
1.3.7提高運算速度31
第2章NumPy—快速處理數據33
2.1ndarray對象33
2.1.1創建34
2.1.2元素類型35
2.1.3自動生成數組37
2.1.4存取元素40
2.1.5多維數組43
2.1.6結構數組47
2.1.7內存結構50
2.2ufunc函數56
2.2.1四則運算58
2.2.2比較運算和布爾運算59
2.2.3自定義ufunc函數61
2.2.4廣播62
2.2.5ufunc的方法66
2.3多維數組的下標存取68
2.3.1下標對象68
2.3.2整數數組作為下標70
2.3.3一個復雜的例子72
2.3.4布爾數組作為下標73
2.4龐大的函數庫74
2.4.1隨機數74
2.4.2求和、平均值、方差77
2.4.3大小與排序81
2.4.4統計函數86
2.4.5分段函數89
2.4.6操作多維數組92
2.4.7多項式函數96
2.4.8多項式函數類98
2.4.9各種乘積運算103
2.4.10廣義ufunc函數106
2.5實用技巧110
2.5.1動態數組110
2.5.2和其他對象共享內存112
2.5.3與結構數組共享內存115
第3章SciPy—數值計算庫117
3.1常數和特殊函數117
3.2擬合與優化—optimize119
3.2.1非線性方程組求解120
3.2.2最小二乘擬合121
3.2.3計算函數局域最小值125
3.2.4計算全域最小值127
3.3線性代數—linalg128
3.3.1解線性方程組129
3.3.2最小二乘解130
3.3.3特征值和特征向量132
3.3.4奇異值分解—SVD134
3.4統計—stats136
3.4.1連續概率分布136
3.4.2離散概率分布139
3.4.3核密度估計140
3.4.4二項分布、泊松分布、伽瑪分布142
3.4.5學生t—分布與t檢驗147
3.4.6卡方分布和卡方檢驗151
3.5數值積分—integrate154
3.5.1球的體積154
3.5.2解常微分方程組156
3.5.3ode類157
3.5.4信號處理—signal164
3.5.5中值濾波164
3.5.6濾波器設計165
3.5.7連續時間線性系統167
3.6插值—interpolate172
3.6.1一維插值172
3.6.2多維插值177
3.7稀疏矩陣—sparse181
3.7.1稀疏矩陣的存儲形式182
3.7.2最短路徑183
3.8圖像處理—ndimage186
3.8.1形態學圖像處理187
3.8.2圖像分割192
3.9空間算法庫—spatial195
3.9.1計算最近旁點195
3.9.2凸包199
3.9.3沃羅諾伊圖201
3.9.4德勞內三角化204
第4章matplotlib—繪制精美的圖表207
4.1快速繪圖207
4.1.1使用pyplot模塊繪圖207
4.1.2面向對象方式繪圖210
4.1.3配置屬性211
4.1.4繪制多子圖212
4.1.5配置文件215
4.1.6在圖表中顯示中文217
4.2Artist對象220
4.2.1Artist的屬性221
4.2.2Figure容器223
4.2.3Axes容器224
4.2.4Axis容器226
4.2.5Artist對象的關系230
4.3坐標變換和注釋231
4.3.14種坐標系234
4.3.2坐標變換的流水線236
4.3.3制作陰影效果240
4.3.4添加注釋241
4.4塊、路徑和集合243
4.4.1Path與Patch243
4.4.2集合245
4.5繪圖函數簡介255
4.5.1對數坐標圖255
4.5.2極坐標圖256
4.5.3柱狀圖257
4.5.4散列圖258
4.5.5圖像259
4.5.6等值線圖261
4.5.7四邊形網格264
4.5.8三角網格267
4.5.9箭頭圖269
4.5.10三維繪圖273
4.6matplotlib技巧集274
4.6.1使用agg後台在圖像上繪圖274
4.6.2響應鼠標與鍵盤事件277
4.6.3動畫285
4.6.4添加GUI面板288
第5章Pandas—方便的數據分析庫291
5.1Pandas中的數據對象291
5.1.1Series對象291
5.1.2Data Frame對象293
5.1.3Index對象297
5.1.4Multi Index對象298
5.1.5常用的函數參數300
5.1.6Data Frame的內部結構301
5.2下標存取303
5.2.1()操作符304
5.2.2.loc()和.iloc()存取器304
5.2.3獲取單個值306
5.2.4多級標簽的存取306
5.2.5query()方法307
5.3文件的輸入輸出307
5.3.1CSV文件308
5.3.2HDF5文件309
5.3.3讀寫數據庫313
5.3.4使用Pickle序列化314
5.4數值運算函數315
5.5時間序列323
5.5.1時間點、時間段、時間間隔323
5.5.2時間序列326
5.5.3與NaN相關的函數329
5.5.4改變Data Frame的形狀333
5.6分組運算338
5.6.1groupby()方法339
5.6.2Group By對象340
5.6.3分組—運算—合並341
5.7數據處理和可視化實例347
5.7.1分析Pandas項目的提交歷史347
5.7.2分析空氣質量數據354
第6章SymPy—符號運算好幫手359
6.1從例子開始359
6.1.1封面上的經典公式359
6.1.2球體體積361
6.1.3數值微分362
6.2數學表達式365
6.2.1符號365
6.2.2數值367
6.2.3運算符和函數368
6.2.4通配符371
6.3符號運算373
6.3.1表達式變換和化簡373
6.3.2方程376
6.3.3微分377
6.3.4微分方程378
6.3.5積分379
6.4輸出符號表達式380
6.4.1lambdify381
6.4.2用autowrap()編譯表達式381
6.4.3使用cse()分步輸出表達式384
6.5機械運動模擬385
6.5.1推導系統的微分方程386
6.5.2將符號表達式轉換為程序388
6.5.3動畫演示389
第7章Traits&;amp;TraitsUI—輕松制作圖形界面393
7.1Traits類型入門393
7.1.1什麽是Traits屬性393
7.1.2Trait屬性的功能396
7.1.3Trait類型對象399
7.1.4Trait的元數據401
7.2Trait類型403
7.2.1預定義的Trait類型403
7.2.2Property屬性406
7.2.3Trait屬性監聽408
7.2.4Event和Button屬性411
7.2.5動態添加Trait屬性412
7.3TraitsUI入門413
7.3.1默認界面414
7.3.2用View定義界面415
7.4用Handler控制界面和模型425
7.4.1用Handler處理事件426
7.4.2Controller和UIInfo對象429
7.4.3響應Trait屬性的事件431
7.5屬性編輯器432
7.5.1編輯器演示程序433
7.5.2對象編輯器436
7.5.3自定義編輯器440
7.6函數曲線繪制工具444
第8章TVTK與Mayavi—數據的三維可視化451
8.1VTK的流水線(Pipeline)452
8.1.1顯示圓錐452
8.1.2用ivtk觀察流水線455
8.2數據集461
8.2.1Image Data461
8.2.2Rectilinear Grid466
8.2.3Structured Grid467
8.2.4Poly Data470
8.3TVTK的改進473
8.3.1TVTK的基本用法474
8.3.2Trait屬性475
8.3.3序列化476
8.3.4集合迭代476
8.3.5數組操作477
8.4TVTK可視化實例478
8.4.1切面479
8.4.2等值面484
8.4.3流線487
8.4.4計算圓柱的相貫線491
8.5用mlab快速繪圖496
8.5.1點和線497
8.5.2Mayavi的流水線498
8.5.3二維圖像的可視化501
8.5.4網格面mesh505
8.5.5修改和創建流水線508
8.5.6標量場511
8.5.7矢量場513
8.6將TVTK和Mayavi嵌入界面515
8.6.1TVTK場景的嵌入516
8.6.2Mayavi場景的嵌入518
第9章Open CV—圖像處理和計算機視覺523
9.1圖像的輸入輸出523
9.1.1讀入並顯示圖像523
9.1.2圖像類型524
9.1.3圖像輸出525
9.1.4字節序列與圖像的相互轉換526
9.1.5視頻輸出527
9.1.6視頻輸入529
9.2圖像處理530
9.2.1二維卷積530
9.2.2形態學運算532
9.2.3填充—flood Fill534
9.2.4去瑕疵—inpaint536
9.3圖像變換537
9.3.1幾何變換537
9.3.2重映射—remap540
9.3.3直方圖543
9.3.4二維離散傅立葉變換547
9.3.5用雙目視覺圖像計算深度信息550
9.4圖像識別553
9.4.1用霍夫變換檢測直線和圓553
9.4.2圖像分割558
9.4.3SURF特征匹配561
9.5形狀與結構分析564
9.5.1輪廓檢測565
9.5.2輪廓匹配568
9.6類型轉換569
9.6.1分析cv2的源程序570
9.6.2Mat對象572
9.3.3在cv和cv2之間轉換圖像對象574
第10章Cython—編譯Python程序575
10.1配置編譯器575
10.2Cython入門577
10.2.1計算矢量集的距離矩陣577
10.2.2將Cython程序編譯成擴展模塊579
10.2.3C語言中的Python對象類型581
10.2.4使用cdef關鍵字聲明變量類型582
10.2.5使用def定義函數585
10.2.6使用cdef定義C語言函數586
10.3高效處理數組587
10.3.1Cython的內存視圖587
10.3.2用降采樣提高繪圖速度592
10.4使用Python標准對象和API596
10.4.1操作list對象596
10.4.2創建tuple對象597
10.4.3用array.array作為動態數組598
10.5擴展類型600
10.5.1擴展類型的基本結構600
10.5.2一維浮點數向量類型601
10.5.3包裝ahocorasick庫606
10.6Cython技巧集612
10.6.1創建ufunc函數613
10.6.2快速調用DLL中的函數617
10.6.3調用BLAS函數620
第11章實例627
11.1使用泊松混合合成圖像627
11.1.1泊松混合算法627
11.1.2編寫代碼629
11.1.3演示程序632
11.2經典力學模擬632
11.2.1懸鏈線633
11.2.2最速降線638
11.2.3單擺模擬641
11.3推薦算法644
11.3.1讀入數據645
11.3.2推薦性能評價標准646
11.3.3矩陣分解647
11.3.4使用最小二乘法實現矩陣分解648
11.3.5使用Cython迭代實現矩陣分解651
11.4頻域信號處理654
11.4.1FFT知識復習654
11.4.2合成時域信號657
11.4.3觀察信號的頻譜660
11.4.4卷積運算671
11.5布爾可滿足性問題求解器675
11.5.1用Cython包裝Pico SAT678
11.5.2數獨游戲682
11.5.3掃雷游戲686
11.6分形693
11.6.1Mandelbrot集合693
11.6.2迭代函數系統699
11.6.3L—System分形706
11.6.4分形山脈710
 

Python理所當然地被視為一門通用的程序設計語言,非常適合於網站開發、系統管理以及通用的業務應用程序。它為諸如YouTube這樣的網站系統、Red Hat操作系統中不可或缺的安裝工具以及從雲管理到投資銀行等大型企業的IT系統提供技術支持,從而贏得了如此高的聲譽。Python還在科學計算領域建立了牢固的基礎,覆蓋了從石油勘探的地震數據處理到量子物理等范圍廣泛的應用場景。Python這種廣泛的適用性在於,這些看似不同的應用領域通常在某些重要的方面是重疊的。易於與數據庫連接、在網絡上發布信息並高效地進行復雜計算的應用程序對於許多行業是至關重要的,而Python最主要的長處就在於它能讓開發者迅速地創建這樣的工具。
網路書店 類別 折扣 價格
  1. 新書
    87
    $616