
利用Python解决数学问题(第2版)
萨姆·莫利
¥65.00
作品简介
本书详细介绍如何使用Python解决数学问题,不仅涵盖Python包、绘图工具和代码等基础知识,还将深入探讨微积分、概率与统计、几何等传统数学理论及其应用。
此外,书中还涉及当前机器学习和人工智能领域的热门主题,如树和网络、回归和预测等。每章围绕一个主题的多个方面或同一主题的多种典型方法详细展开,分别从“准备工作”、“实现方法”、“原理解析”、“更多内容”等方面进行细致介绍,循序渐进地引导读者掌握每项技术,而且每章最后还会推荐高质量的学习资源。
这种结构不仅适合初学者逐步学习,也会为有经验的程序员和数据科学家提供实用的方法论。
萨姆·莫利(Sam Morley)是一名软件工程师和数学家,在牛津大学负责DataSig项目。他曾是东安格利亚大学(University of East Anglia)的数学讲师,那时他专注于纯数学研究。如今,萨姆大部分时间都在编写C++库和Python扩展模块,他也喜欢编写Python代码。他致力于提供高质量、包容性强和令人愉悦的教学,旨在激励学生并传播他对数学和编程的热情。
作品目录
PREFACE译者序
About the author作者简介
About the reviewer审校者简介
PREFACE前言
CHAPTER 1 第1章 基础软件包、函数和概念简介
1.1 技术要求
1.2 探索Python的数值类型
1.3 理解基本数学函数
1.4 深入探究NumPy世界
1.5 使用矩阵和线性代数
1.6 总结
1.7 拓展阅读
CHAPTER 2 第2章 使用Matplotlib进行数学绘图
2.1 技术要求
2.2 使用Matplotlib进行基本绘图
2.3 添加子图
2.4 绘制误差条图形
2.5 保存Matplotlib图形
2.6 曲面图和等高线图
2.7 自定义三维图
2.8 用箭头图绘制向量场
2.9 拓展阅读
CHAPTER 3 第3章 微积分和微分方程
3.1 技术要求
3.2 微积分入门
3.4 使用SymPy进行符号微分和积分
3.5 求解方程
3.6 使用SciPy对函数进行数值积分
3.7 简单微分方程的数值求解
3.8 求解微分方程组
3.9 偏微分方程的数值求解
3.10 利用离散傅里叶变换进行信号处理
3.11 使用JAX实现自动微分和微积分
3.12 使用JAX求解微分方程
3.13 拓展阅读
CHAPTER 4 第4章 使用随机性和概率
4.1 技术要求
4.2 随机选择条目
4.3 生成随机数据
4.4 更改随机数生成器
4.5 生成服从正态分布的随机数
4.6 处理随机过程
4.7 利用贝叶斯技术分析转换率
4.8 用蒙特卡罗模拟估计参数
4.9 拓展阅读
CHAPTER 5 第5章 使用树和网络
5.1 技术要求
5.2 在Python中创建网络
5.3 可视化网络
5.4 了解网络的基本特征
5.5 生成网络邻接矩阵
5.6 创建有向加权网络
5.7 在网络中寻找最短路径
5.8 量化网络中的聚类
5.9 为网络着色
5.10 寻找最小生成树和支配集
5.11 拓展阅读
CHAPTER 6 第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 拓展阅读
CHAPTER 7 第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 拓展阅读
CHAPTER 8 第8章 几何问题
8.1 技术要求
8.2 二维几何形状的可视化
8.3 查找内点
8.4 在图像中查找边缘
8.5 平面图形的三角剖分
8.6 计算凸包
8.7 构建贝塞尔曲线
8.8 拓展阅读
CHAPTER 9 第9章 寻找最优解
9.1 技术要求
9.2 最小化简单线性函数
9.3 最小化非线性函数
9.4 采用梯度下降法进行优化
9.5 用最小二乘法拟合数据曲线
9.6 分析简单的双人博弈
9.7 计算纳什均衡
9.8 拓展阅读
CHAPTER 10 第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 为数据科学编写可重用代码