Python高性能(第2版)

Python高性能(第2版)

出版信息

[加] 加布丽埃勒•拉纳诺(Gabriele Lanaro) / 袁国忠 / 人民邮电出版社 / 2018-8 / 59.00元

内容简介

本书是一本Python性能提升指南,展示了如何利用Python的原生库以及丰富的第三方库来构建健壮的应用程序。书中阐释了如何利用各种剖析器来找出Python应用程序的性能瓶颈,并应用正确的算法和高效的数据结构来解决它们;介绍了如何有效地利用NumPy、Pandas和Cython高性能地执行数值计算;解释了异步编程的相关概念,以及如何利用响应式编程实现响应式应用程序;概述了并行编程的概念,并论述了如何利用TensorFlow和Theano为并行架构编写代码,以及如何通过Dask和PySpark等技术在计算机集群上执行大规模计算。

通过学习本书,你将能够实现高性能、可伸缩的Python应用程序。

- 利用NumPy和Pandas编写高效的数值计算代码

- 利用Cython和Numba实现近似本地的性能

- 利用剖析器发现Python应用程序的瓶颈

- 利用asyncio和RxPy编写整洁的并发代码

- 利用TensorFlow和Theano在Python中自动实现并行性

- 利用Dask和PySpark在计算机集群上运行分布式并行算法

作者简介

加布丽埃勒•拉纳诺(Gabriele Lanaro)

数据科学家、软件工程师,对机器学习、信息检索、数值计算可视化、Web开发、计算机图形学和系统管理有浓厚的兴趣。开源软件包chemlab和chemview的开发者。现就职于Tableau软件公司。

目录

第1章 基准测试与剖析  1
1.1 设计应用程序  2
1.2 编写测试和基准测试程序  7
1.3 使用pytest-benchmark编写更佳的测试和基准测试程序  10
1.4 使用cProfile找出瓶颈  12
1.5 使用line_profiler逐行进行剖析  16
1.6 优化代码  17
1.7 模块dis  19
1.8 使用memory_profiler剖析内存使用情况  19
1.9 小结  21
第2章 纯粹的Python优化  22
2.1 有用的算法和数据结构  22
2.1.1 列表和双端队列  23
2.1.2 字典  25
2.1.3 集  28
2.1.4 堆  29
2.1.5 字典树  30
2.2 缓存和memoization  32
2.3 推导和生成器  34
2.4 小结  36
第3章 使用NumPy和Pandas快速执行数组操作  37
3.1 NumPy基础  37
3.1.1 创建数组  38
3.1.2 访问数组  39
3.1.3 广播  43
3.1.4 数学运算  45
3.1.5 计算范数  46
3.2 使用NumPy重写粒子模拟器  47
3.3 使用numexpr最大限度地提高性能  49
3.4 Pandas  51
3.4.1 Pandas基础  51
3.4.2 使用Pandas执行数据库式操作  55
3.5 小结  59
第4章 使用Cython获得C语言性能  60
4.1 编译Cython扩展  60
4.2 添加静态类型  62
4.2.1 变量  63
4.2.2 函数  64
4.2.3 类  65
4.3 共享声明  66
4.4 使用数组  67
4.4.1 C语言数组和指针  67
4.4.2 NumPy数组  69
4.4.3 类型化内存视图  70
4.5 使用Cython编写粒子模拟器  72
4.6 剖析Cython代码  75
4.7 在Jupyter中使用Cython  78
4.8 小结  80
第5章 探索编译器  82
5.1 Numba  82
5.1.1 Numba入门  83
5.1.2 类型特殊化  84
5.1.3 对象模式和原生模式  85
5.1.4 Numba和NumPy  88
5.1.5 JIT类  91
5.1.6 Numba的局限性  94
5.2 PyPy项目  95
5.2.1 安装PyPy  95
5.2.2 在PyPy中运行粒子模拟器  96
5.3 其他有趣的项目  97
5.4 小结  97
第6章 实现并发性  98
6.1 异步编程  98
6.1.1 等待I/O  99
6.1.2 并发  99
6.1.3 回调函数  101
6.1.4 future  104
6.1.5 事件循环  105
6.2 asyncio框架  108
6.2.1 协程  108
6.2.2 将阻塞代码转换为非阻塞代码  111
6.3 响应式编程  113
6.3.1 被观察者  113
6.3.2 很有用的运算符  115
6.3.3 hot被观察者和cold被观察者  118
6.3.4 打造CPU监视器  121
6.4 小结  123
第7章 并行处理  124
7.1 并行编程简介  124
7.2 使用多个进程  127
7.2.1 Process和Pool类  127
7.2.2 接口Executor  129
7.2.3 使用蒙特卡洛方法计算pi的近似值  130
7.2.4 同步和锁  132
7.3 使用OpenMP编写并行的Cython代码  134
7.4 并行自动化  136
7.4.1 Theano初步  137
7.4.2 Tensorflow  142
7.4.3 在GPU中运行代码  144
7.5 小结  146
第8章 分布式处理  148
8.1 分布式计算简介  148
8.2 Dask  151
8.2.1 有向无环图  151
8.2.2 Dask数组  152
8.2.3 Dask Bag和DataFrame  154
8.2.4 Dask distributed  158
8.3 使用PySpark  161
8.3.1 搭建Spark和PySpark环境  161
8.3.2 Spark架构  162
8.3.3 弹性分布式数据集  164
8.3.4 Spark DataFrame  168
8.4 使用mpi4py执行科学计算  169
8.5 小结  171
第9章 高性能设计  173
9.1 选择合适的策略  173
9.1.1 普通应用程序  174
9.1.2 数值计算代码  174
9.1.3 大数据  176
9.2 组织代码  176
9.3 隔离、虚拟环境和容器  178
9.3.1 使用conda环境  178
9.3.2 虚拟化和容器  179
9.4 持续集成  183
9.5 小结  184

本文地址:https://www.codercto.com/books/d/827.html

XML、JSON 在线转换

XML、JSON 在线转换

在线XML、JSON转换工具

Markdown 在线编辑器

Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换

UNIX 时间戳转换

UNIX 时间戳转换