猜你喜欢
Python科学计算和数据科学应用(第2版)  使用NumPy、SciPy和matplotlib

Python科学计算和数据科学应用(第2版) 使用NumPy、SciPy和matplotlib

书籍作者:[美] 罗伯特·约翰逊 ISBN:9787302552802
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:6742
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

《Python科学计算和数据科学应用(第2版) 使用NumPy、SciPy和matplotlib》全面介绍Python在数值计算和数学领域的模块、标准库以及多个开源Python库,如NumPy、SciPy、FiPy、matplotlib等。在上一版的基础上,本书做了全面修订,更新了每个包的更新细节以及Jupyter项目的变化,演示了数值计算和数学建模在大数据、云计算、金融工程、商业管理等领域的应用。

  本书提供了Python在数据科学和统计分析中很多新的应用示例,对上一版中的示例进行了扩展,每个示例都充分展示了Python的简洁语法及其数据分析方法在快速开发和探索性计算方面的强大功能。

  通过阅读本书,读者将熟悉很多计算技术,包括基于数组的计算和符号计算、数据可视化和数值文件读写、方程求解、优化、插值和积分以及特定领域的计算问题,如微分方程求解、数据分析、统计建模和机器学习等。


作者简介

作者简介

Robert Johansson是一位经验丰富的Python程序员和计算科学家,他拥有瑞典查尔斯理工大学理论物理学博士学位。他在学术界和工业界从事科学计算工作超过10年,既参与过开源项目的开发,也做过专有性研究项目的开发。在开源领域,他为QuTip项目做出了很多贡献,QuTip项目是一个很流行的用于模拟量子系统动力学的Python框架,他还为科学计算领域的其他几个Python库做出过贡献。Robert对科学计算和软件开发充满热情,并热衷于传授和交流这方面的最佳实践,以便能在这些领域取得最好的成果:新颖的、可重现的、可扩展的计算结果。Robert在理论物理和计算物理领域有5年的研究背景,目前他是IT行业的数据科学家。


译者简介

黄强,本科和硕士分别毕业于中山大学和中国科学院研究生院,目前在一家国有银行从事信息科技方面的工作。对信息技术的前沿发展及应用有着浓厚的兴趣,包括云计算、人工智能、金融科技等,翻译过多本技术专著。


编辑推荐
图书特色
◆ 使用NumPy处理数组和矩阵
◆ 使用matplotlib绘图和可视化数据
◆ 使用Pandas和SciPy进行数据分析
◆ 使用statsmodels和scikit-learn进行统计
建模和机器学习
◆ 使用Numba和Cython优化Python代码
前言

前 言

科学计算和数值计算是科研、工程和分析方面的新兴领域。过去几十年来,信息科技行业的革命为其从业者提供了新的强大工具。这让计算工作能够处理前所未有的大规模和复杂性问题,所以整个领域和行业的应用如雨后春笋般涌现。这种进步还在持续,随着硬件、软件和算法的不断改进,该领域也正在创造新的机会。虽然这种技术进步的终极推手是最近几十年以来出现的拥有强大计算能力的硬件,但是,对于计算从业人员来说,计算工作的软件环境与硬件一样重要,甚至更为重要。《Python科学计算和数据科学应用(第2版)》介绍目前很流行并且快速增长的数值计算环境:由Python编程语言及其很多库组成的数值计算生态系统。

计算是一种跨学科的工作,需要在理论和实践方面都有丰富的专业知识和经验:扎实的数学基础和科学思维是计算工作的基本要求。另外,计算机编程和计算机科学方面的训练也同样重要。《Python科学计算和数据科学应用(第2版)》的目的就是通过介绍使用Python编程语言及相关的计算环境进行科学计算来连接理论和实践。《Python科学计算和数据科学应用(第2版)》假设读者已经接受过一些数学和数值方法的基本训练,并且掌握Python编程的基础知识。《Python科学计算和数据科学应用(第2版)》的重点是使用Python进行实际计算问题的求解。每章都会对该章涉及的理论知识做简单介绍,主要是为了向读者介绍相关的符号并回顾基本的方法和算法。但是,《Python科学计算和数据科学应用(第2版)》并不是数值方法的自洽介绍。为了帮助那些对《Python科学计算和数据科学应用(第2版)》某些章介绍的主题不太熟悉的读者,每章在最后都会给出扩展阅读。另外,如果读者没有Python编程经验,将《Python科学计算和数据科学应用(第2版)》与专门介绍Python编程语言的书一起阅读会很有用。

《Python科学计算和数据科学应用(第2版)》的组织方式

《Python科学计算和数据科学应用(第2版)》第1章将介绍科学计算的一般原理以及使用Python进行科学计算的主要开发环境,重点介绍IPython及其交互式Python命令行,还介绍优秀的Jupyter Notebook应用以及Spyder IDE。

在第2章,我们将介绍NumPy库,另外还将讨论基于数组的计算及其优点。在第3章,我们将关注使用SymPy库进行符号计算,符号计算在很多方面都是对基于数组的计算的补充。在第4章,我们将介绍使用matplotlib库进行绘图和可视化。第2~4章为我们提供了基本的计算工具:数值计算、符号计算、可视化,这些工具将在《Python科学计算和数据科学应用(第2版)》其余章节用于解决特定领域的问题。

第5章的主题是方程求解,将分别介绍如何使用SciPy和SymPy库的数值方法和符号方法。在第6章,我们将探讨优化问题,这是从方程求解自然延伸出来的。我们主要使用SciPy库,同时也会简单地使用cvxopt库。第7章主要介绍插值,插值是另外一种有很多应用的基本数学工具,在高级算法和方法中有着重要的作用。第8章将介绍数值积分和符号积分。第5~8章主要介绍所有计算工作中经常使用的核心计算技术,这几章的大部分方法都可以在SciPy库中找到。

第9章将介绍常微分方程。第10章将介绍稀疏矩阵和图论相关的方法,这些有助于为第11章做准备。第11章将讨论偏微分方程,偏微分方程虽然在概念上与常微分方程密切相关,但是需要使用不同的技术,需要用到第10章介绍的稀疏矩阵。

从第12章开始,我们的研究方向将转到数据分析和统计分析。在第12章,我们将介绍Pandas库及其优秀的数据分析框架。第13章将介绍基本的统计分析以及SciPy stats包中的相关方法。第14章将介绍使用statsmodels库进行统计建模。第15章将结合机器学习(使用scikit-learn库)继续讨论统计分析和数据分析。第16章是介绍统计分析的最后一章,将讨论贝叶斯统计和PyMC库。第12~16章介绍了统计分析和数据分析,它们也是近年来Python科学计算社区里迅速发展的重要领域。

第17章将简要回顾科学计算的另外一个核心领域:信号处理。第18章讨论数据的输入输出,以及多种读写数据文件的方法,这是大部分计算工作所必需的基本工具。第19章将介绍提速Python代码的两种方法:分别使用Numba和Cython库。

附录介绍《Python科学计算和数据科学应用(第2版)》中所使用软件的安装方法。我们可以使用conda包管理器来安装这些软件(大部分是Python库)。conda包管理器也可用来创建虚拟的、独立的Python环境,这对于创建稳定和可复制的计算环境非常重要。附录还讨论如何使用conda包管理器来处理这种环境。

源代码下载

《Python科学计算和数据科学应用(第2版)》的每章都将提供Jupyter Notebook,其中包含该章中所有的代码。这些Notebook及其代码运行所需的数据文件都可以从www.apress.com/9781484242452下载,读者也可以通过扫描封底的二维码来下载。


目录

目 录

第1章 科学计算介绍 1

1.1 Python数值计算环境 3

1.2 Python 4

1.3 IPython控制台 5

1.3.1 输入输出缓存 6

1.3.2 自动补全和对象自省(Object Introspection) 6

1.3.3 文档 7

1.3.4 与系统shell进行交互 7

1.3.5 IPython扩展 8

1.4 Jupyter 13

1.4.1 Jupyter QtConsole 13

1.4.2 Jupyter Notebook 14

1.4.3 Jupyter Lab 16

1.4.4 单元类型 16

1.4.5 编辑单元 17

1.4.6 Markdown单元 18

1.4.7 输出显示 19

1.4.8 nbconvert 22

1.5 Spyder集成开发环境 24

1.5.1 源代码编辑器 25

1.5.2 Spyder控制台 26

1.5.3 对象查看器 26

1.6 本章小结 26

1.7 扩展阅读 27

1.8 参考文献 27

第2章 向量、矩阵和多维数组 29

2.1 导入模块 30

2.2 NumPy Array对象 30

2.2.1 数据类型 31

2.2.2 内存中数组数据的顺序 33

2.3 创建数组 34

2.3.1 从列表和其他类数组对象创建数组 35

2.3.2 以常量填充的数组 35

2.3.3 以增量序列填充的数组 36

2.3.4 以等比数列填充的数组 37

2.3.5 Meshgrid数组 37

2.3.6 创建未初始化的数组 38

2.3.7 使用其他数组的属性创建数组 38

2.3.8 创建矩阵数组 38

2.4 索引和切片 39

2.4.1 一维数组 39

2.4.2 多维数组 41

2.4.3 视图 42

2.4.4 花式索引和布尔索引 43

2.5 调整形状和大小 45

2.6 向量化表达式 48

2.6.1 算术运算 49

2.6.2 逐个元素进行操作的函数 52

2.6.3 聚合函数 54

2.6.4 布尔数组和条件表达式 56

2.6.5 集合运算 59

2.6.6 数组运算 60

2.7 矩阵和向量运算 61

2.8 本章小结 66

2.9 扩展阅读 66

2.10 参考文献 66

第3章 符号计算 67

3.1 导入SymPy 67

3.2 符号 68

3.3 表达式 74

3.4 表达式操作 76

3.4.1 化简 76

3.4.2 展开 77

3.4.3 因式分解、合并同类项 78

3.4.4 分式分解、通分、消除公因子 79

3.4.5 替换 79

3.5 数值计算 80

3.6 微积分 81

3.6.1 导数 81

3.6.2 积分 83

3.6.3 级数展开 85

3.6.4 极限 86

3.6.5 和与积 87

3.7 方程 88

3.8 线性代数 89

3.9 本章小结 92

3.10 扩展阅读 93

3.11 参考文献 93

第4章 绘图和可视化 95

4.1 导入模块 96

4.2 入门 96

4.3 Figure对象 101

4.4 Axes实例 102

4.4.1 绘图类型 103

4.4.2 线条属性 103

4.4.3 图例 107

4.4.4 文本格式和注释 108

4.4.5 轴属性 110

4.5 Axes高级布局 119

4.5.1 图中图 119

4.5.2 plt.subplots 121

4.5.3 plt.subplot2grid 123

4.5.4 GridSpec 123

4.6 绘制色图 124

4.7 绘制3D图形 126

4.8 本章小结 128

4.9 扩展阅读 128

4.10 参考文献 129

第5章 方程求解 131

5.1 导入模块 131

5.2 线性方程组 132

5.2.1 方形方程组 133

5.2.2 矩形方程组 137

5.3 特征值问题 141

5.4 非线性方程 142

5.4.1 单变量方程 142

5.4.2 非线性方程组 149

5.5 本章小结 152

5.6 扩展阅读 152

5.7 参考文献 153

第6章 优化 155

6.1 导入模块 155

6.2 优化问题的分类 156

6.3 单变量优化 158

6.4 无约束的多变量优化问题 160

6.5 非线性最小二乘问题 167

6.6 受约束的优化问题 168

6.7 本章小结 175

6.8 扩展阅读 175

6.9 参考文献 176

第7章 插值 177

7.1 导入模块 177

7.2 插值概述 178

7.3 多项式 179

7.4 多项式插值 181

7.5 样条插值 185

7.6 多变量插值 188

7.7 本章小结 193

7.8 扩展阅读 193

7.9 参考文献 193

第8章 积分 195

8.1 导入模块 196

8.2 数值积分方法 196

8.3 使用SciPy进行数值积分 199

8.4 多重积分 204

8.5 符号积分和任意精度积分 208

8.6 积分变换 211

8.7 本章小结 214

8.8 扩展阅读 214

8.9 参考文献 214

第9章 常微分方程 215

9.1 导入模块 215

9.2 常微分方程 216

9.3 使用符号方法求解ODE 217

9.3.1 方向场 222

9.3.2 使用拉普拉斯变换求解ODE 225

9.4 数值法求解ODE 228

9.5 使用SciPy对ODE进行

数值积分 231

9.6 本章小结 242

9.7 扩展阅读 242

9.8 参考文献 243

第10章 稀疏矩阵和图 245

10.1 导入模块 245

10.2 SciPy中的稀疏矩阵 246

10.2.1 创建稀疏矩阵的函数 250

10.2.2 稀疏线性代数函数 252

10.2.3 线性方程组 252

10.2.4 图和网络 257

10.3 本章小结 264

10.4 扩展阅读 264

10.5 参考文献 264

第11章 偏微分方程 265

11.1 导入模块 266

11.2 偏微分方程 266

11.3 有限差分法 267

11.4 有限元法 272

11.5 使用FEniCS求解PDE 275

11.6 本章小结 293

11.7 扩展阅读 294

11.8 参考文献 294

第12章 数据处理和分析 295

12.1 导入模块 296

12.2 Pandas介绍 296

12.2.1 Series对象 296

12.2.2 DataFrame对象 299

12.2.3 时间序列 307

12.3 Seaborn图形库 317

12.4 本章小结 321

12.5 扩展阅读 322

12.6 参考文献 322

第13章 统计 323

13.1 导入模块 323

13.2 概率统计回顾 324

13.3 随机数 325

13.4 随机变量及其分布 328

13.5 假设检验 335

13.6 非参数法 339

13.7 本章小结 341

13.8 扩展阅读 341

13.9 参考文献 341

第14章 统计建模 343

14.1 导入模块 344

14.2 统计建模简介 344

14.3 使用Patsy定义统计模型 345

14.4 线性回归 352

14.5 离散回归 360

14.5.1 对数几率回归 361

14.5.2 泊松回归模型 365

14.6 时间序列 368

14.7 本章小结 372

14.8 扩展阅读 372

14.9 参考文献 372

第15章 机器学习 373

15.1 导入模块 374

15.2 机器学习回顾 374

15.3 回归 375

15.4 分类 384

15.5 聚类 388

15.6 本章小结 391

15.7 扩展阅读 392

15.8 参考文献 392

第16章 贝叶斯统计 393

16.1 导入模块 394

16.2 贝叶斯统计简介 394

16.3 定义模型 396

16.3.1 后验分布采样 400

16.3.2 线性回归 403

16.4 本章小结 413

16.5 扩展阅读 413

16.6 参考文献 413

第17章 信号处理 415

17.1 导入模块 415

17.2 频谱分析 416

17.2.1 傅里叶变换 416

17.2.2 加窗 421

17.2.3 频谱图 424

17.3 信号滤波器 427

17.3.1 卷积滤波器 428

17.3.2 FIR和IIR滤波器 429

17.4 本章小结 434

17.5 扩展阅读 434

17.6 参考文献 434

第18章 数据的输入输出 435

18.1 导入模块 436

18.2 CSV格式 436

18.3 HDF5 440

18.3.1 h5py库 441

18.3.2 PyTables库 451

18.3.3 Pandas HDFStore 455

18.4 JSON 456

18.5 序列化 460

18.6 本章小结 462

18.7 扩展阅读 462

18.8 参考文献 463

第19章 代码优化 465

19.1 导入模块 467

19.2 Numba 467

19.3 Cython 473

19.4 本章小结 482

19.5 扩展阅读 483

19.6 参考文献 483

附录 安装 485


短评

之前看过英文版,最近看到这本书就买了。适合入门,想要提高的话还是得看各种说明书。

2020-08-19 22:41:27

书籍备着以后看,相信能学会

2020-06-26 19:58:42

送货速度太快了,信奈。

2020-06-18 17:22:25

此用户未填写评价内容

2020-06-13 18:30:25

产品特色