目录
第 1章 入门1
1.1 安装和配置说明1
1.1.1 安装1
1.1.2 Anaconda2
1.1.3 配置3
目录
第 1章 入门1
1.1 安装和配置说明1
1.1.1 安装1
1.1.2 Anaconda2
1.1.3 配置3
1.1.4 Python Shell3
1.1.5 执行脚本3
1.1.6 获取帮助4
1.1.7 Jupyter ?C Python笔记本4
1.2 程序与控制流4
1.2.1 注释5
1.2.2 行连接5
1.3 基本类型6
1.3.1 数值类型6
1.3.2 字符串6
1.3.3 变量7
1.3.4 列表7
1.3.5 列表运算符8
1.3.6 布尔表达式8
1.4 使用循环来重复语句9
1.4.1 重复任务9
1.4.2 break和else9
1.5 条件语句10
1.6 使用函数封装代码10
1.7 脚本和模块11
1.7.1 简单的模块—函数的
集合12
1.7.2 使用模块和命名空间13
1.8 解释器13
1.9 小结14
第 2章 变量和基本数据类型15
2.1 变量15
2.2 数值类型16
2.2.1 整数类型17
2.2.2 浮点数17
2.2.3 复数20
2.3 布尔类型23
2.3.1 布尔运算符23
2.3.2 布尔类型转换24
2.3.3 布尔类型自动转换24
2.3.4 and和or的返回值25
2.3.5 布尔值和整数26
2.4 字符串类型26
2.5 小结29
2.6 练习30
第3章 容器类型33
3.1 列表33
3.1.1 切片34
3.1.2 步长36
3.1.3 列表修改36
3.1.4 是否属于列表37
3.1.5 列表方法37
3.1.6 原位操作38
3.1.7 列表合并—zip39
3.1.8 列表推导39
3.2 数组40
3.3 元组41
3.4 字典42
3.4.1 创建和修改字典42
3.4.2 循环遍历字典43
3.5 集合44
3.6 容器类型转换45
3.7 类型检查46
3.8 小结47
3.9 练习47
第4章 线性代数—数组50
4.1 数组类型概要50
4.1.1 向量和矩阵50
4.1.2 索引和切片52
4.1.3 线性代数运算52
4.2 数学基础53
4.2.1 作为函数的数组54
4.2.2 基于元素的运算54
4.2.3 形状和维数54
4.2.4 点运算55
4.3 数组类型57
4.3.1 数组属性57
4.3.2 用列表创建数组57
4.4 访问数组项59
4.4.1 基本数组切片59
4.4.2 使用切片修改数组61
4.5 数组构造函数61
4.6 访问和修改形状62
4.6.1 shape函数62
4.6.2 维数63
4.6.3 重塑63
4.7 叠加65
4.8 作用于数组的函数66
4.8.1 通用函数66
4.8.2 数组函数68
4.9 SciPy中的线性代数方法69
4.9.1 使用LU来求解多个线性
方程组70
4.9.2 使用SVD来解决最小二乘
问题71
4.9.3 其他方法72
4.10 小结72
4.11 练习73
第5章 高级数组75
5.1 数组视图和副本75
5.1.1 数组视图75
5.1.2 切片视图76
5.1.3 转置和重塑视图76
5.1.4 复制数组76
5.2 数组比较77
5.2.1 布尔数组77
5.2.2 数组布尔运算78
5.3 数组索引79
5.3.1 使用布尔数组进行索引79
5.3.2 使用where命令80
5.4 代码性能和向量化81
5.5 广播83
5.5.1 数学视角83
5.5.2 广播数组86
5.5.3 典型示例88
5.6 稀疏矩阵90
5.6.1 稀疏矩阵格式91
5.6.2 生成稀疏矩阵94
5.6.3 稀疏矩阵方法94
5.7 小结95
第6章 绘图96
6.1 基本绘图96
6.2 格式化100
6.3 meshgrid和contours函数103
6.4 图像和等值线106
6.5 matplotlib对象108
6.5.1 坐标轴对象108
6.5.2 修改线条属性109
6.5.3 注释110
6.5.4 曲线间的填充面积111
6.5.5 刻度和刻度标签112
6.6 绘制三维图113
6.7 用绘图制作电影116
6.8 小结117
6.9 练习117
第7章 函数120
7.1 基本原理120
7.2 形参和实参121
7.2.1 参数传递—通过位置和
关键字121
7.2.2 更改实参122
7.2.3 访问本地命名空间之外
定义的变量122
7.2.4 默认参数123
7.2.5 可变参数124
7.3 返回值125
7.4 递归函数126
7.5 函数文档128
7.6 函数是对象128
7.7 匿名函数—lambda
关键字130
7.8 装饰器131
7.9 小结132
7.10 练习133
第8章 类135
8.1 类的简介136
8.1.1 类语法136
8.1.2 _ _init_ _方法137
8.2 属性和方法138
8.2.1 特殊方法139
8.2.2 彼此依赖的属性143
8.2.3 绑定和未绑定方法145
8.2.4 类属性146
8.2.5 类方法146
8.3 子类和继承148
8.4 封装151
8.5 装饰器类152
8.6 小结154
8.7 练习154
第9章 迭代156
9.1 for语句156
9.2 控制循环内流程157
9.3 迭代器158
9.3.1 生成器159
9.3.2 迭代器是一次性的159
9.3.3 迭代器工具160
9.3.4 递归序列的生成器161
9.4 加速收敛163
9.5 列表填充模式165
9.5.1 使用append方法来填充
列表165
9.5.2 迭代器中的列表166
9.5.3 存储生成的值166
9.6 将迭代器作为列表使用167
9.6.1 生成器表达式167
9.6.2 压缩迭代器168
9.7 迭代器对象169
9.8 无限迭代170
9.8.1 while循环170
9.8.2 递归171
9.9 小结171
9.10 练习172
第 10章 异常处理175
10.1 什么是异常175
10.1.1 基本原理177
10.1.2 用户定义异常179
10.1.3 上下文管理器—
with语句180
10.2 查找错误:调试181
10.2.1 漏洞182
10.2.2 堆栈182
10.2.3 Python调试器183
10.2.4 调试命令185
10.2.5 IPython调试186
10.3 小结187
第 11章 命名空间、范围和模块188
11.1 命名空间188
11.2 变量范围189
11.3 模块191
11.3.1 简介191
11.3.2 IPython模块192
11.3.3 变量_ _name_ _193
11.3.4 一些有用的模块193
11.4 小结194
第 12章 输入和输出195
12.1 文件处理195
12.1.1 文件交互195
12.1.2 文件是可迭代的196
12.1.3 文件模式197
12.2 NumPy方法198
12.2.1 savetxt198
12.2.2 loadtxt198
12.3 Pickling199
12.4 Shelves200
12.5 读写Matlab数据文件200
12.6 读写图像201
12.7 小结202
第 13章 测试203
13.1 手动测试203
13.2 自动测试204
13.3 使用unittest包206
13.4 参数化测试209
13.5 断言工具210
13.6 浮点值比较210
13.7 单元和功能测试212
13.8 调试213
13.9 测试发现213
13.10 测量执行时间213
13.10.1 用魔法函数计时214
13.10.2 使用Python的timeit
计时模块215
13.10.3 用上下文管理器
计时216
13.11 小结217
13.12 练习217
第 14章 综合示例219
14.1 多项式219
14.1.1 理论背景219
14.1.2 任务220
14.2 多项式类221
14.3 牛顿多项式225
14.4 谱聚类算法226
14.5 解决初始值问题230
14.6 小结233
14.7 练习233
第 15章 符号计算—SymPy235
15.1 什么是符号计算235
15.2 SymPy的基本元素238
15.2.1 符号—所有公式的
基础238
15.2.2 数字239
15.2.3 函数239
15.3 基本函数241
15.4 符号线性代数243
15.5 SymPy线性代数方法示例245
15.6 替换246
15.7 评估符号表达式249
15.8 符号表达式转化为数值
函数250
15.9 小结252
参考文献253