微信扫码下载

编辑推荐

Python不仅是一种通用的编程语言,更是免费且开源的语言和环境,在科学计算领域具有巨大的应用潜力。
Python 3.0科学计算指南》以数学应用为背景介绍Python的相关知识。通过学习《Python 3.0科学计算指南》,你将认识到Python是一种将科学计算与数学紧密结合起来的强大工具;学会使用面向对象的Python执行计算任务的方法,并掌握计算数学的一个必要构建块——线性代数及其对象;学会函数和类的使用方法;熟悉测试工具并学习复杂的编程示例;通过Python模块SymPy开启计算机代数的学习之旅。
Python 3.0科学计算指南》将介绍所有需要掌握的Python知识,以及将这些知识应用于线性代数、数组、绘图、迭代、函数以及多项式等的方法。
Python 3.0科学计算指南》旨在帮助你:
●理解Python的主要语法元素;
●了解Python中重要和基本的数据类型;
●理解计算数学的一个必要构建块——线性代数及其对象;
●用Python的matplotlib包创建高质量的表格和图形,以便绘制和可视化结果;
●定义和使用函数,并学会将它们作为对象使用;
●使用SciPy和NumPy包,以受益于其强大的与科学计算任务相关的数组数据类型;
●深入理解何时、以何种方式正确地使用面向对象的Python编程;
●专注于科学计算编程中的现代测试、调试和分析。

内容简介

Python 3.0科学计算指南》旨在通过实际的Python3.0代码示例展示Python与数学应用程序的紧密联系,介绍将Python中的各种概念用于科学计算的方法。
Python 3.0科学计算指南》共有15章。第1~3章介绍Python中的主要语法元素、基本数据类型、容器类型等概念;第4~9章介绍线性代数、数组、函数、类、迭代等与数学数据类型紧密相关的内容;第10~14章就有关科学计算程序运行过程中错误处理、输入输出、测试等问题进行探索,并具体给出了一些综合实例,以帮助读者进一步掌握前述章节所涵盖的内容;第15章介绍符号计算的相关内容,旨在让读者了解这一常用于推导和验证理论上的数学模型和数值结果的技术。
Python 3.0科学计算指南》特色鲜明,示例生动有趣,内容易读易学,既适合Python初学者和程序员阅读,也适合高校计算机专业的教师和学生参考。具有编程经验以及科学计算的爱好者也可以将《Python 3.0科学计算指南》作为研究SciPy和NumPy的参考资料。

作者简介

ClausFührer是瑞典隆德大学科学计算系的教授。他曾在许多国家和教学机构任教,拥有十分丰富的课堂教学经验,所教授的课程涉及各级数值分析和工程数学的密集程序设计。在与工业界的研究he作中,Claus还开发出了数值分析软件,并因此荣获了2016年度隆德大学工程学院教师奖。
JanEricSolem是Python的狂热爱好者。他曾任瑞典隆德大学的副教授,目前是Mapillary公司(一家街景计算机视觉公司)的CEO。他曾是PolarRose公司的创始人兼CTO,并担任人脸识别专家,还担任过苹果公司计算机视觉团队的负责人。Jan是世界经济论坛的技术先驱之一,曾凭借图像分析和模式识别的论文荣获2005—2006年度北美论文奖。他也是《ProgrammingComputerVisionwithPython》一书的作者。
OlivierVerdier于2009年获得了瑞典隆德大学的数学博士学位。他也是德国科隆大学、挪威特隆赫姆大学、挪威卑尔根大学和瑞典乌梅奥大学的博士后。OliviewVerdier早在2007年就开始用Python进行科学计算,目前是挪威卑尔根大学数学系的副教授。

目录

第1章 入门1
1.1 安装和配置说明1
1.1.1 安装1
1.1.2 Anaconda2
1.1.3 配置3
1.1.4 PythonShell3
1.1.5 执行脚本3
1.1.6 获取帮助4
1.1.7 Jupyter–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

其他推荐