本书主要介绍如何使用Python处理数学问题。内容涉及代数、统计、概率和微积分等方面。本书第1-4章主要讲解Python编程的基本知识,第5-12章主要是介绍Python用于处理数学问题的第三方扩展库的使用,包括NumPy、Scipy、Matplotlib和SymPy.第5章Python绘图是后续很多章节的基础,请读者务必要首先熟悉这一章的内容。第6章面向对象编程主要讲解什么是面向对象的程序设计,Python是一种面向对象的程序设计语言,掌握面向对象的概念对于理解Python程序、编写出效率更高的Python代码会很有帮助。NumPy是Python科学计算的基础,第7章详细讲解NumPy的使用方法。第8章的内容相对比较独立,主要介绍Python在符号计算方面的应用。第9和第10章是关于概率统计的内容,会用到第5-7章的知识。第11章是关于分形的介绍,读者可以了解到如何使用Python绘制分形。第12章是讲解Python中的异常处理。
张骞,北京航空航天大学硕士,资深软件工程师。17年软件开发经验。先后在数家大型通信企业担任高级软件开发工程师,精通C/C++、Python语言编程。现从事数据挖掘与分析方面的研究工作,同时致力于编程技术的普及和推广。
第1章 Spyder IDE
1.1 安装Spyder
1.2 使用Spyder
1.3 升级Spyder
1.4 使用Spyder在线版
1.5 本章小结
第2章 用Python处理计算公式
2.1 将Python作为计算器
2.1.1 算术运算
2.1.2 关系运算
2.1.3 赋值运算
2.1.4 逻辑运算
2.1.5 位运算
2.2 编写Python脚本
2.2.1 定义变量
2.2.2 变量名
2.2.3 变量类型
2.2.4 表达式
2.2.5 语句
2.2.6 注释
2.2.7 格式化输出
2.3 编程陷阱
2.4 本章小结
2.5 练习
第3章 函数与分支
3.1 使用函数
3.2 Python Math模块
3.2.1 常数
3.2.2 算术函数
3.2.3 Math库中其他的重要数学函数
3.3 定义函数
3.4 括号匹配
3.5 入参和局部变量
3.5.1 参数默认值
3.5.2 关键字参数
3.5.3 局部变量和全局变量
3.6 函数返回值
3.7 Lambda表达式
3.8 条件分支
3.9 程序验证
3.9.1 编写测试函数
3.9.2 使用pytest
3.10 本章小结
3.11 练习
第4章 循环
4.1 while循环
4.2 使用列表存储数据
4.2.1 创建列表
4.2.2 列表索引
4.2.3 列表的基本操作
4.2.4 列表对象支持的方法
4.3 for循环
4.4 中止当前循环
4.5 列表推导式(list comprehension)
4.5.1 range类型
4.5.2 使用for循环填充列表
4.5.3 数列求和
4.5.4 更改列表中的元素
4.5.5 创建列表的简便方式
4.5.6 zip()函数
4.6 嵌套列表
4.7 Spyder调试代码
4.8 Tuples
4.9 求方程近似解
4.9.1 二分法
4.9.2 牛顿迭代法
4.10 本章小结
第5章 Python绘图
5.1 安装Matplotlib
5.2 绘制简单图形
5.3 北京、上海和广州三地的平均温度
5.4 绘制函数图形
5.5 Matplotlib对象层次结构
5.5.1 Line2D对象
5.5.2 添加文本
5.5.3 多个子图(Axes)
5.6 字典(Dictionary)类型
5.7 本章小结
5.8 练习
第6章 类和面向对象编程
6.1 代表数学公式的类
6.2 类的通用格式
6.3 受保护的类属性
6.4 对象属性和类属性
6.5 特殊方法
6.5.1 __call__()
6.5.2 ___del__()
6.5.3 __str__()
6.5.4 __repr__()
6.5.5 __abs__()
6.5.6 数学运算的特殊方法
6.6 Python的类和静态方法
6.7 如何知道类的内容
6.8 类的测试函数
6.9 类层次结构和继承
6.10 使用OOP方法的实例
6.10.1 螺线
6.10.2 比例数
6.11 本章小结
6.12 练习
第7章 NumPy与矩阵
7.1 NumPy安装
7.1.1 使用pip安装
7.1.2 Linux下安装
7.1.3 安装验证
7.2 NumPy数组对象
7.2.1 创建数组对象
7.2.2 修改数组形状
7.2.3 单位矩阵
7.3 NumPy数据类型
7.3.1 基本数据类型
7.3.2 长度确定的数据类型
7.3.3 字节序
7.3.4 结构化数据
7.4 操作数组
7.4.1 数组切片和索引
7.4.2 迭代数组
7.4.3 基本运算
7.4.4 位操作
7.4.5 布尔运算
7.4.6 NumPy广播(Broadcast)
7.4.7 数组排序
7.4.8 统计运算
7.5 用NumPy处理代数问题
7.5.1 向量化计算
7.5.2 向量和矩阵
7.5.3 用NumPy求解线性方程组
7.5.4 插值和拟合
7.6 本章小结
7.7 练习
第8章 SymPy与符号计算
8.1 安装和升级SymPy
8.2 配置SymPy
8.3 定义符号
8.3.1 变量符号
8.3.2 数值符号
8.3.3 函数对象
8.4 符号运算
8.4.1 数的运算
8.4.2 表达式展开
8.4.3 表达式化简
8.4.4 表达式求值
8.4.5 表达式连加
8.4.6 表达式连乘
8.4.7 因式分解
8.4.8 逻辑运算
8.5 微积分
8.5.1 极限
8.5.2 级数展开
8.5.3 微分
8.5.4 积分
8.5.5 路径积分
8.5.6 积分变换
8.6 线性代数
8.6.1 矩阵
8.6.2 方程
8.7 绘图
8.8 本章小结
8.9 练习
第9章 统计分析
9.1 安装Pandas和SciPy
9.2 基本概念
9.2.1 平均值
9.2.2 加权平均值
9.2.3 调和平均值
9.2.4 几何平均值
9.2.5 中位值
9.2.6 众数
9.2.7 方差
9.2.8 标准差
9.2.9 偏度
9.2.10 百分位数
9.2.11 范围
9.3 描述性统计
9.4 数据相关性
9.4.1 协方差
9.4.2 相关系数
9.5 从文件读取数据
9.5.1 处理CSV文件
9.5.2 对象化处理数据
9.6 绘制统计图
9.6.1 上海车牌竞拍
9.6.2 上海的历史降雨量
9.7 本章小结
9.8 练习
第10章 概率统计