利用Python解決數學問題(原書第2版) Applying Math with Python - Second Edition: Over 70 practical recipes for solving real-world computational math problems

劉楠 于俊偉

相關主題

商品描述

本書將幫助你簡單高效地解決覆雜的數學問題。書中對舊的編程方法進行了修訂,以適配新的庫,並且還新增了幾種編程方法來展示諸如JAX之類的新工具。本書將教你如何解決數學領域的各種問題,這些領域包括微積分、概率論、統計學與數據科學、圖論、最優化以及幾何學。 你將從培養核心技能開始,學習Python科學棧中涵蓋的各種包,包括NumPy、SciPy和Matplotlib。隨著學習的深入,你將掌握微積分、概率論和網絡(圖論)等高級主題。在牢固掌握這些主題之後,你將了解Python在數據科學與統計學、預測、幾何學以及最優化方面的應用。最後幾章將帶你處理一系列各式各樣的問題,包括處理特定的數據格式以及加速代碼運行。 學完本書後,你將擁有一系列實用的編碼解決方案,這些方案可用於解決計算數學和數據科學領域中廣泛的實際問題,並且還能根據需要進行修改。 通過閱讀本書,你將: 熟悉Python中用於解決數學問題的基本包、工具和庫。 探索有助於解決計算數學問題的各種技術。 理解應用數學的核心概念,以及如何將其應用於計算機科學領域。了解如何選擇最合適的包、工具或技術來解決特定問題。 使用Matplotlib實現基本的數學繪圖,更改繪圖形式,並為繪圖添加標簽。 借助貝葉斯推理和馬爾可夫鏈蒙特卡羅(MCMC)方法掌握概率論。

作者簡介

劉楠,博士,解放軍信息工程大學副教授。她在統計學、數據科學、密碼學等領域發表論文10余篇,出版教材及譯著5部。

目錄大綱

譯者序
作者簡介
審校者簡介
前言
第1章 基礎軟件包、函數和概念簡介
1.1 技術要求
1.2 探索Python的數值類型
1.3 理解基本數學函數
1.4 深入探究NumPy世界
1.5 使用矩陣和線性代數
1.6 總結
1.7 拓展閱讀
第2章 使用Matplotlib進行數學繪圖
2.1 技術要求
2.2 使用Matplotlib進行基本繪圖
2.3 添加子圖
2.4 繪制誤差條圖形
2.5 保存Matplotlib圖形
2.6 曲面圖和等高線圖
2.7 自定義三維圖
2.8 用箭頭圖繪制向量場
2.9 拓展閱讀
第3章 微積分和微分方程
3.1 技術要求
3.2 微積分入門
3.3 使用多項式和微積分
3.4 使用SymPy進行符號微分和積分
3.5 求解方程
3.6 使用SciPy對函數進行數值積分
3.7 簡單微分方程的數值求解
3.8 求解微分方程組
3.9 偏微分方程的數值求解
3.10 利用離散傅裏葉變換進行信號處理
3.11 使用JAX實現自動微分和微積分
3.12 使用JAX求解微分方程
3.13 拓展閱讀
第4章 使用隨機性和概率
4.1 技術要求
4.2 隨機選擇條目
4.3 生成隨機數據
4.4 更改隨機數生成器
4.5 生成服從正態分布的隨機數
4.6 處理隨機過程
4.7 利用貝葉斯技術分析轉換率
4.8 用蒙特卡羅模擬估計參數
4.9 拓展閱讀
第5章 使用樹和網絡
5.1 技術要求
5.2 在Python中創建網絡
5.3 可視化網絡
5.4 了解網絡的基本特征
5.5 生成網絡鄰接矩陣
5.6 創建有向加權網絡
5.7 在網絡中尋找最短路徑
5.8 量化網絡中的聚類
5.9 為網絡著色
5.10 尋找最小生成樹和支配集
5.11 拓展閱讀
第6章 使用數據和統計學
6.1 什麼是統計學
6.2 技術要求
6.3 創建Series和DataFrame對象
6.4 從DataFrame中加載數據和向DataFrame存儲數據
6.5 在DataFrame中操作數據
6.6 從DataFrame中繪制數據
6.7 從DataFrame中獲取描述性統計信息
6.8 通過抽樣了解總體
6.9 對DataFrame中的分組數據進行操作
6.10 使用t檢驗進行假設檢驗
6.11 使用ANOVA進行假設檢驗
6.12 非參數數據的假設檢驗
6.13 使用Bokeh創建交互式圖形
6.14 拓展閱讀
第7章 使用回歸和預測
7.1 技術要求
7.2 使用基本線性回歸
7.3 使用多重線性回歸
7.4 使用對數回歸進行分類
7.5 使用ARMA對時間序列數據進行建模
7.6 基於ARIMA的時間序列數據預測
7.7 使用ARIMA預測季節性數據
7.8 使用Prophet對時間序列數據進行建模
7.9 使用簽名總結時間序列數據
7.10 拓展閱讀
第8章 幾何問題
8.1 技術要求
8.2 二維幾何形狀的可視化
8.3 查找內點
8.4 在圖像中查找邊緣
8.5 平面圖形的三角剖分
8.6 計算凸包
8.7 構建貝塞爾曲線
8.8 拓展閱讀
第9章 尋找最優解
9.1 技術要求
9.2 最小化簡單線性函數
9.3 最小化非線性函數
9.4 采用梯度下降法進行優化
9.5 用最小二乘法擬合數據曲線
9.6 分析簡單的雙人博弈
9.7 計算納什均衡
9.8 拓展閱讀
第10章 提升工作效率
10.1 技術要求
10.2 使用Pint跟蹤單位
10.3 考慮計算中的不確定性
10.4 從NetCDF文件中加載數據和向NetCDF文件存儲數據
10.5 將Jupyter notebook作為腳本執行
10.6 驗證數據
10.7 使用Cython加速代碼
10.8 使用Dask進行分布式計算
10.9 為數據科學編寫可重用代碼