Python科学计算基础教程pdf

图书网 2018年9月1日09:01:4473.5K
摘要

全面阐述Python科学计算基础内容
提供Python科学计算精彩案例
总结科学计算的任务、难点以及杰出实践经验
科学计算概况、结构
使用NumPy和SciPy完成数值计算
使用SymPy进行符号计算的概念和方法
使用matplotlib画图程序库做数据可视化
使用pandas、matplotlib和IPython组合做数据分析与可视化
Python的并行和高性能计算方法
科学计算应用、库和工具的Python开发案例
方案设计、代码编写、高性能计算等科学计算杰出实践

Python科学计算基础教程 内容简介

Python因为其自身的诸多优点而成为科学计算的极佳选择。本书是将Python 用于科学计算的实用指南,既介绍了相关的基础知识,又提供了丰富的精彩案例,并为读者总结了杰出实践经验。其主要内容包括:科学计算的基本概念与选择Python 的理由,科学工作流和科学计算的结构,科学项目相关数据的各个方面,用于科学计算的API 和工具包,如何利用Python 的NumPy 和SciPy 包完成数值计算,用Python 做符号计算,数据分析与可视化,并行与大规模计算,等等。

Python科学计算基础教程 目录

第1 章 科学计算概况与选择Python的理由 1

1.1 科学计算的定义 2

1.2 科学计算的简单处理流程 3

1.3 科学与工程领域的案例 5

1.4 解决复杂问题的策略 5

1.5 近似、误差及相关统计概念和术语 6

1.5.1 误差分析 7

1.5.2 敏感度、稳定性和准确性 7

1.5.3 后向与前向误差估计 8

1.5.4 误差可以忽略不计吗 8

1.6 计算机算术运算和浮点数 8

1.7 Python 编程语言简介 9

1.7.1 Python 语言的指导原则 9

1.7.2 为什么用Python 做科学计算 11

1.7.3 Python 的缺点 13

1.8 小结 13

第2 章 科学工作流和科学计算的结构 14

2.1 科学计算的数学部分 14

2.1.1 线性方程组 14

2.1.2 非线性方程组 15

2.1.3 最优化方法 16

2.1.4 内插法 17

2.1.5 外插法 17

2.1.6 数值积分 18

2.1.7 数值微分 18

2.1.8 微分方程 19

2.1.9 随机数生成器 20

2.2 Python 科学计算 21

2.2.1 NumPy 简介 22

2.2.2 SciPy 程序库 22

2.2.3 用pandas 做数据分析 23

2.3 IPython 交互式编程简介 23

2.3.1 IPython 并行计算 24

2.3.2 IPython Notebook 24

2.4 用SymPy 进行符号计算 26

2.4.1 SymPy 的主要特点 27

2.4.2 为什么用SymPy 28

2.5 画图程序库 28

2.6 小结 30

第3 章 有效地制造与管理科学数据 31

3.1 数据的基本概念 31

3.2 数据存储软件与工具箱 32

3.2.1 文件 33

3.2.2 数据库 33

3.3 常见的数据操作 34

3.4 科学数据的格式 35

3.5 现成的标准数据集 37

3.6 数据生成 41

3.7 模拟数据的生成(构造) 41

3.7.1 用Python 的内置函数生成随机数 42

3.7.2 基于统计分布的随机数生成器的设计和实现 45

3.7.3 一个用简单逻辑生成5位随机数的程序 46

3.8 大规模数据集的简要介绍 47

3.9 小结 48

第4 章 Python 科学计算API 49

4.1 Python 数值科学计算 49

4.1.1 NumPy 程序包 49

4.1.2 SciPy 程序包 52

4.1.3 简单的SciPy 程序 54

4.2 SymPy符号计算 57

4.2.1 计算机代数系统 57

4.2.2 通用CAS的特点 57

4.2.3 SymPy设计理念简介 58

4.2.4 SymPy模块 60

4.2.5 简单的范例程序 61

4.3 数据分析和可视化的API 和工具 63

4.3.1 用pandas进行数据分析和操作 63

4.3.2 用matplotlib进行数据可视化 64

4.3.3 用IPython实现Python的交互式计算 64

4.3.4 数据分析和可视化的示例程序 65

4.4 小结 67

第5 章 数值计算 68

5.1 NumPy 的基本对象 68

5.1.1 N 维数组对象 68

5.1.2 通用函数对象 72

5.1.3 NumPy 的数学模块 74

5.2 SciPy 的介绍 75

5.2.1 SciPy 的数学函数 75

5.2.2 高级模块/程序包 76

5.3 小结 97

第6 章 用Python 做符号计算 98

6.1 符号、表达式和基本运算 98

6.2 求解方程 99

6.3 有理数、指数和对数函数 100

6.4 多项式 100

6.5 三角函数和复数 101

6.6 线性代数 101

6.7 微积分 103

6.8 向量 105

6.9 物理模块 106

6.9.1 氢波函数 106

6.9.2 矩阵和Pauli代数 107

6.9.3 一维和三维量子谐振子 107

6.9.4 二次量子化 108

6.9.5 高能物理 108

6.9.6 力学 109

6.10 漂亮的打印功能 111

6.11 密码学模块 113

6.12 输入的句法分析 113

6.13 逻辑模块 114

6.14 几何模块 116

6.15 符号积分 117

6.16 多项式操作 119

6.17 集合 120

6.18 运算的简化和合并 121

6.19 小结 122

第7 章 数据分析与可视化 123

7.1 matplotlib 123

7.1.1 matplotlib的架构 124

7.1.2 matplotlib的画图方法 125

7.2 pandas 程序库 128

7.2.1 Series 128

7.2.2 DataFrame 129

7.2.3 Panel 130

7.2.4 pandas 数据结构的常用函数 131

7.2.5 时间序列与日期函数 137

7.2.6 处理缺失数据 140

7.3 I/O 操作 141

7.3.1 处理CSV文件 141

7.3.2 即开即用数据集 144

7.4 IPython 145

7.4.1 IPython 终端与系统命令行工具 146

7.4.2 IPython Notebook 149

7.5 小结 150

第8 章 并行与大规模科学计算 151

8.1 用IPython 做并行计算 152

8.2 IPython 并行计算架构 152

8.3 并行计算示例 154

8.3.1 并行装饰器 155

8.3.2 IPython 的魔法函数 155

8.4 IPython 的高级特性 157

8.4.1 容错执行 157

8.4.2 动态负载均衡 158

8.4.3 在客户端与引擎之间推拉对象 158

8.4.4 支持数据库存储请求与结果 160

8.4.5 在IPython 里使用MPI 161

8.4.6 管理任务之间的依赖关系 162

8.4.7 用Amazon EC2 的StarCluster启动IPython 167

8.5 IPython 数据安全措施 168

8.5.1 常用并行编程方法 168

8.5.2 在Python 中演示基于Hadoop的MapReduce 174

8.5.3 在Python 中运行Spark 176

8.6 小结 176

第9 章 真实案例介绍 177

9.1 用Python 开发的科学计算应用 177

9.1.1 “每个孩子一台笔记本”项目用Python 开发界面 177

9.1.2 ExpEYES——科学之眼 180

9.1.3 Python 开发的天气预测应用程序 181

9.1.4 Python 开发的航空器概念设计工具与API 182

9.1.5 OpenQuake 引擎 183

9.1.6 德国西马克公司的能源效率应用程序 184

9.1.7 高能物理数据分析的自动代码生成器 184

9.1.8 Python 的计算化学应用 186

9.2 Python 开发的盲音触觉识别系统 187

9.2.1 TAPTools 空中交通管制工具 187

9.2.2 光能效率检测的嵌入式系统 188

9.3 Python 开发的科学计算程序库 189

9.3.1 Tribon 公司的船舶设计API 189

9.3.2 分子建模工具箱 189

9.3.3 标准Python程序包 190

9.4 小结 191

第10 章 科学计算的最佳实践 192

10.1 方案设计阶段的最佳实践 192

10.2 功能实现阶段的最佳实践 194

10.3 数据管理与应用部署的最佳实践 196

10.4 实现高性能的最佳实践 197

10.5 数据隐私与安全的最佳实践 198

10.6 测试与维护的最佳实践 198

10.7 Python 常用的最佳实践 199

10.8 小结 200

Python科学计算基础教程 精彩文摘

1.3 科学与工程领域的案例

让我们看几个可能用科学计算解决的问题。第一个问题是研究两个黑洞碰撞的行为,这个问题无论从理论上还是实践上都很难理解。从理论上说,这个实验非常复杂,几乎不可能在实验室实现并进行现场研究。但是这个现象可以根据爱因斯坦的广义相对论的数学公式建立合理有效的数学模型,然后在计算实验室进行仿真。然而,这个仿真需要消耗极大的计算能力,可以通过先进的分布式计算环境实现。

第二个问题与工程和设计相关。与汽车测试相关的一个问题是碰撞测试(crash testing)。为了降低完成真实(也很危险)的碰撞测试的成本,工程师和设计师们都会优先考虑进行计算机仿真碰撞测试。最后,还有大型房屋与厂房设计问题。可以按照设计目标构建一个仿真模型,但是这样做需要消耗大量的时间和金钱。然而,通过建筑设计工具完成设计可以节省大量的时间和成本。生物信息科学和医学也有类似的情况,例如蛋白质结构的折叠和传染病的建模研究。蛋白质结构折叠的研究非常耗时,但是利用大规模计算机集群和分布式计算系统可以高效地完成。类似地,在分析不同参数对传染病疫苗接种程序的影响方面,为传染病建模可以节省时间和成本。

之所以挑选这三个问题,是因为它们分别代表科学计算可以解决的三类问题。第一类问题是基本不可能解决的。第二类问题可以解决但风险很高,甚至具有严重的破坏性。第三类问题不使用仿真就可以解决,也可以在现实生活中通过模拟解决,但是通过仿真方法解决会更加经济高效。

图书网:Python科学计算基础教程pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

程序设计

重构 改善既有代码的设计(中文版)pdf

《重构:改善既有代码的设计》(中文版)所提的这些重构准则将帮助你一次一小步地修改你的代码,这就减少了过程中的风险。很快你就会把这些重构准则和其名称加入自己的开发词典中,并且朗朗上口...
程序设计

数据结构 C语言版 第2版pdf

适读人群 :普通高校电子信息大类本科生学习、考研,同时也适合零售和培训。 采用“案例驱动”的编写模式。书中结合实际应用,将各章按照“案例引入——数据结构及其操作——案例分析与实现”...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:7   其中:访客  7   博主  0
    • kokon
      kokon 9

      非常好,谢谢分享

      • ゞ 正在缓冲99%(
        ゞ 正在缓冲99%( 9

        谢谢分享

        • 3151151
          3151151 0

          感谢分享升职加薪当上总经理

          • erlang
            erlang 1

            看下。

            • erlang
              erlang 1

              感谢分享,最近正需要学习。

              • 早班火车
                早班火车 0

                谢谢分享,希望可以加深自己的编程能力

                • 君临机器人
                  君临机器人 0

                  谢谢分享,希望可以增强自己的编程能力。