Python科學計算和數據分析(第3版) 使用NumPy、SciPy和Matplotlib等

[美] 羅伯特·約翰遜(Robert Johansson)著 林潤 譯

  • Python科學計算和數據分析(第3版) 使用NumPy、SciPy和Matplotlib等-preview-1
  • Python科學計算和數據分析(第3版) 使用NumPy、SciPy和Matplotlib等-preview-2
  • Python科學計算和數據分析(第3版) 使用NumPy、SciPy和Matplotlib等-preview-3
Python科學計算和數據分析(第3版) 使用NumPy、SciPy和Matplotlib等-preview-1

相關主題

商品描述

閱讀《Python科學計算和數據分析(第3版) 使用NumPy、SciPy和Matplotlib等》,讀者能夠具備 Python 科學計算與數據分析的完整能力,熟練使用 Python 標準庫,以及 NumPy、SymPy、SciPy、Matplotlib 等主流開源數值計算工具包。本書結合數值計算、符號計算與數據可視化三大核心技術,系統講解數學建模方法,梳理問題求解思路,內容覆蓋科學研究、工程實踐、數據分析等多行業實際應用場景。 書中精選了大量基礎科學計算、數據科學與統計學實戰案例。本版內容已全面更新,適配所有主流工具庫的**版本,充分展現了Python 憑借簡潔的高級語法、豐富的計算與數據分析類庫與工具,在快速開發、探索式計算方面的突出優勢。 通過學習本書,讀者將熟練掌握多種計算技術,包括數組運算、符號計算、數據可視化、數值文件I/O、方程求解、優化、插值與積分;還將掌握各類領域專屬計算問題的處理方法,包括微分方程求解、數據分析、統計建模與機器學習。 本書核心內容: ?使用NumPy處理向量和矩陣 ?運用SymPy進行符號計算 ?利用Matplotlib繪制圖表,實現數據可視化 ?借助Pandas和SciPy完成數據分析任務 ?基於statsmodels和scikit-learn實現統計建模與機器學習 ?利用 Numba、Cython 對 Python 代碼進行性能優化

作者簡介

Robert Johansson是一位經驗豐富的Python程序員兼計算科學家,他擁有瑞典查爾姆斯理工大學理論物理學博士學位。他在學術界和工業界從事科學計算工作已逾15年,既參與過開源項目的開發,也做過專有性研究項目的開發。在開源領域,他為QuTip項目作出了很多貢獻,QuTip項目是一個用於模擬量子系統動力學的流行Python框架,他還為科學計算領域的其他幾個Python庫作出過貢獻。Robert對科學計算和軟件開發充滿熱情,並熱衷於傳授和交流這方面的**實踐方法,以便能在這些領域取得**的成果:新穎的、可重現的、可擴展的且有影響力的計算結果。

目錄大綱

目    錄

第1章 Python科學計算入門  1

1.1 Python數值計算環境  3

1.2 Python  4

1.3 IPython控制臺  5

1.3.1 輸入輸出緩存  6

1.3.2 自動補全和對象自省  6

1.3.3 文檔  7

1.3.4 與系統shell進行交互  7

1.3.5 IPython擴展  8

1.4 Jupyter  12

1.4.1 Jupyter QtConsole  13

1.4.2 Jupyter Notebook  13

1.4.3 Jupyter Lab  15

1.4.4 代碼框類型  16

1.4.5 編輯代碼框  16

1.4.6 Markdown代碼框  17

1.4.7 富文本輸出顯示  19

1.4.8 nbconvert  21

1.5 Spyder集成開發環境  23

1.5.1 源代碼編輯器  25

1.5.2 Spyder控制臺  25

1.5.3 對象查看器  26

1.6 本章小結  26

1.7 擴展閱讀  26

第2章 向量、矩陣和多維數組  27

2.1 導入模塊  28

2.2 NumPy Array對象  28

2.2.1 數據類型  29

2.2.2 內存中數組數據的順序  31

2.3 創建數組  32

2.3.1 從列表和其他類數組對象創建數組  33

2.3.2 以常量填充的數組  33

2.3.3 以遞增序列填充的數組  34

2.3.4 以對數序列填充的數組  34

2.3.5 meshgrid數組  35

2.3.6 創建未初始化的數組  35

2.3.7 使用其他數組的屬性創建數組  36

2.3.8 創建矩陣數組  36

2.4 索引和切片  37

2.4.1 一維數組  37

2.4.2 多維數組  38

2.4.3 視圖  40

2.4.4 花式索引和布爾值索引  40

2.5 調整數組的形狀和大小  42

2.6 向量化表達式  46

2.6.1 算術運算  47

2.6.2 逐元素進行操作的函數  49

2.6.3 聚合函數  51

2.6.4 布爾數組和條件表達式  53

2.6.5 集合運算  55

2.6.6 數組運算  56

2.7 矩陣和向量運算  57

2.8 本章小結  62

2.9 擴展閱讀  62

第3章 符號計算  63

3.1 導入SymPy  64

3.2 符號  64

3.3 表達式  71

3.4 表達式操作  72

3.4.1 簡化  72

3.4.2 展開  73

3.4.3 因式分解、合並同類項  74

3.4.4 分式分解、通分、消去公因子  75

3.4.5 替換  75

3.5 數值計算  76

3.6 微積分  77

3.6.1 導數  77

3.6.2 積分  79

3.6.3 級數展開  80

3.6.4 極限  82

3.6.5 和與積  82

3.7 方程  83

3.8 線性代數  85

3.9 本章小結  88

3.10 擴展閱讀  88

第4章 繪圖和可視化  89

4.1 導入模塊  90

4.2 入門  91

4.3 Figure對象  95

4.4 Axes實例  96

4.4.1 繪圖類型  97

4.4.2 線條屬性  98

4.4.3 圖例  101

4.4.4 文本格式和註釋  102

4.4.5 軸屬性  104

4.5 Axes高級布局  113

4.5.1 圖中圖  113

4.5.2 子圖  114

4.5.3 subplot2grid  116

4.5.4 GridSpec  116

4.6 色圖  117

4.7 3D圖形  120

4.8 本章小結  122

4.9 擴展閱讀  122

第5章 方程求解  123

5.1 導入模塊  124

5.2 線性方程組  124

5.2.1 方形方程組  125

5.2.2 矩形方程組  129

5.3 特征值問題  132

5.4 非線性方程  134

5.4.1 單變量方程  134

5.4.2 非線性方程組  140

5.5 本章小結  143

5.6 擴展閱讀  144

第6章 優化  145

6.1 導入模塊  146

6.2 優化問題的分類  146

6.3 單變量優化  148

6.4 無約束的多變量優化問題  151

6.5 非線性最小二乘問題  157

6.6 受約束的優化問題  159

6.7 本章小結  165

6.8 擴展閱讀  165

第7章 插值  166

7.1 導入模塊  166

7.2 插值概述  167

7.3 多項式  168

7.4 多項式插值  170

7.5 樣條插值  174

7.6 多變量插值  176

7.7 本章小結  181

7.8 擴展閱讀  182

第8章 積分  183

8.1 導入模塊  184

8.2 數值積分方法  184

8.3 使用SciPy進行數值積分  187

8.4 多重積分  192

8.5 符號積分和任意精度積分  196

8.6 積分變換  198

8.7 本章小結  201

8.8 擴展閱讀  201

第9章 常微分方程  203

9.1 導入模塊  203

9.2 常微分方程  204

9.3 使用符號方法求解ODE  205

9.3.1 方向場  210

9.3.2 使用拉普拉斯變換求解ODE  213

9.4 數值法求解ODE  216

9.5 使用SciPy對ODE進行數值積分  219

9.6 本章小結  229

9.7 擴展閱讀  230

第10章 稀疏矩陣和圖  231

10.1 導入模塊  232

10.2 SciPy中的稀疏矩陣  232

10.2.1 創建稀疏矩陣的函數  236

10.2.2 稀疏線性代數函數  238

10.2.3 線性方程組  238

10.2.4 圖和網絡  243

10.3 本章小結  249

10.4 擴展閱讀  249

第11章 偏微分方程  250

11.1 導入模塊  251

11.2 偏微分方程  251

11.3 有限差分法  252

11.4 有限元法  257

11.5 使用FEniCS求解PDE  260

11.6 本章小結  277

11.7 擴展閱讀  278

第12章 數據處理和分析  279

12.1 導入模塊  280

12.2 Pandas介紹  280

12.2.1 Series對象  280

12.2.2 DataFrame對象  283

12.2.3 時間序列  291

12.3 Seaborn圖形庫  300

12.4 本章小結  304

12.5 擴展閱讀  304

第13章 統計  306

13.1 導入模塊  306

13.2 概率統計回顧  307

13.3 隨機數  308

13.4 隨機變量及其分布  312

13.5 假設檢驗  318

13.6 非參數法  322

13.7 本章小結  324

13.8 擴展閱讀  324

第14章 統計建模  325

14.1 導入模塊  326

14.2 統計建模簡介  326

14.3 使用Patsy定義統計模型  327

14.4 線性回歸  334

14.5 離散回歸  342

14.5.1 邏輯回歸  342

14.5.2 泊松回歸模型  346

14.6 時間序列  349

14.7 本章小結  353

14.8 擴展閱讀  353

第15章 機器學習  354

15.1 導入模塊  355

15.2 機器學習回顧  355

15.3 回歸  357

15.4 分類  365

15.5 聚類  369

15.6 本章小結  372

15.7 擴展閱讀  373

第16章 貝葉斯統計  374

16.1 導入模塊  375

16.2 貝葉斯統計簡介  375

16.3 定義模型  377

16.3.1 後驗分布采樣  382

16.3.2 線性回歸  384

16.4 本章小結  394

16.5 擴展閱讀  394

第17章 信號處理  395

17.1 導入模塊  395

17.2 頻譜分析  396

17.2.1 傅裏葉變換  396

17.2.2 窗口函數  400

17.2.3 頻譜圖  403

17.3 信號濾波器  407

17.3.1 卷積濾波器  407

17.3.2 FIR和IIR濾波器  409

17.4 本章小結  413

17.5 擴展閱讀  413

第18章 數據的輸入與輸出  414

18.1 導入模塊  415

18.2 CSV格式  415

18.3 HDF5  419

18.3.1 h5py庫  420

18.3.2 PyTables庫  430

18.3.3 Pandas HDFStore  433

18.4 Parquet  435

18.5 JSON  438

18.6 序列化  441

18.7 本章小結  443

18.8 擴展閱讀  444

第19章 代碼優化  445

19.1 導入模塊  447

19.2 Numba  447

19.3 Cython  453

19.4 本章小結  462

19.5 擴展閱讀  463

附錄A 安裝  464

A.1 Miniconda和conda  465

A.2 為Jupyter Notebook註冊內核  470

A.3 安裝一個完整的環境  470

A.4 本附錄小結  473

A.5 擴展閱讀  473