Python 高性能编程 更好地掌握numpy、Cython和剖析器; ■ 了解Python如何抽象化底层的计算机架构; ■ 使用剖析手段来寻找CPU时间和内存使用的瓶颈; ■ 通过选择合适的数据结构来编写高效的程序 ■ 加速矩阵和矢量计算; ■ 使用工具把Python编译成机器代码; ■ 管理并发的多I/O和计算操作; ■ 把多进程代码转换到在本地或者远程集群上运行; ■ 用更少的内存解决大型问题。 PY THON / PERFORMANCE Micha Gorelick在 bitly 公司从事与 数据打交道的工作,并负责建立 了快速前进实验室( Fast Forward Labs ),研究从机器学习到高性 能流算法领域的问题。 Ian Ozsvald是 ModelInsight.io 的 数据科学家和教师,有着超过十 年的 P y thon 经验。他在 P yCon 和 PyData 会议上教授 Python 编程, 这几年一直在英国从事关于数据 科学和高性能计算方面的咨询工 作。 高性能编程 High Performance Python 美 Micha Gorelick Ian Ozsvald ■ 高 性 能 编 程 Python [ ] 通过阅读本书,你将能够: Python Python 代码仅仅能够正确运行还不够,你需要让它运行得更快。通过探 “ 尽 管 P y t h o n 在 学 术 和 工 业 领 索设计决策背后的基础理论,本书帮助你更加深刻地理解 Python 的实 域很流行,但人们也经常由 现。你将学习如何找到性能瓶颈,以及如何在大数据量的程序中显著加 于Python程序运行太慢而放弃 快代码。 它。本书通过全面介绍改善优化 Python计算速度和可扩展性的 如何利用多核架构或集群的优点?如何构建一个在不损失可靠性的情况 策略,从而消除人们的这种误 下具备可伸缩性的系统?有经验的 Python 程序员将学到针对这些问题或 解。” 者其他问题的具体解决方案,以及来自那些在社交媒体分析、产品化机 ——Jake VanderPlas 器学习和其他场景下使用高性能Python编程的公司的成功案例。 华盛顿大学 著 封面设计:Karen Montgomery 张健 O'Reilly Media, Inc.授权人民邮电出版社出版 此简体中文版仅限于中国大陆(不包含中国香港、澳门特别行政区和中国台湾地区)销售发行 This Authorized Edition for sale only in the territory of People's Republic of China (excluding Hong Kong, Macao and Taiwan) [美]Micha Gorelick Ian Ozsvald 著 胡世杰 徐旭彬 译 分类建议:计算机/软件开发/Python 人民邮电出版社网址:www.ptpress.com.cn 异步社区会员 woshigedushuren(13120020972) 专享 尊重版权 high_performance_python-ptp.indd 1 17/5/22 上午10:36 异步社区会员 woshigedushuren(13120020972) 专享 尊重版权 版权声明 Copyright © 2014 by O’Reilly Media, Inc. Simplified Chinese Edition, jointly published by O’Reilly Media, Inc. and Posts & Telecom Press, 2017. Authorized translation of the English edition, 2015 O’Reilly Media, Inc., the owner of all rights to publish and sell the same. All rights reserved including the rights of reproduction in whole or in part in any form. 本书中文简体版由 O’Reilly Media, Inc. 授权人民邮电出版社出版。未经出版者书面许可,对本书的 任何部分不得以任何方式复制或抄袭。 版权所有,侵权必究。 ♦ 著 [美] Micha Gorelick Ian Ozsvald 译 胡世杰 徐旭彬 责任编辑 陈冀康 责任印制 焦志炜 ♦ 人民邮电出版社出版发行 邮编 100164 北京市丰台区成寿寺路 11 号 电子邮件 [email protected] 网址 http://www.ptpress.com.cn 三河市海波印务有限公司印刷 ♦ 开本:800×1000 1/16 印张:22 字数:415 千字 2017 年 7 月第 1 版 印数:1 – 3 000 册 2017 年 7 月河北第 1 次印刷 著作权合同登记号 图字:01-2013-9303 号 定价:79.00 元 读者服务热线:(010)81055410 印装质量热线:(010)81055316 反盗版热线:(010)81055315 异步社区会员 woshigedushuren(13120020972) 专享 尊重版权 内容提要 Python 语言是一种脚本语言,其应用领域非常广泛,包括数据分析、自然语言处理、 机器学习、科学计算、推荐系统构建等。 本书共有 12 章,围绕如何进行代码优化和加快实际应用的运行速度进行详细讲解。本 书主要包含以下主题:计算机内部结构的背景知识、列表和元组、字典和集合、迭代 器和生成器、矩阵和矢量计算、并发、集群和工作队列等。最后,通过一系列真实案 例展现了在应用场景中需要注意的问题。 本书适合初级和中级 Python 程序员、有一定 Python 语言基础想要得到进阶和提高的读 者阅读。 异步社区会员 woshigedushuren(13120020972) 专享 尊重版权 前言 Python 很容易学。你之所以阅读本书可能是因为你的代码现在能够正确运行,而你希 望它能跑得更快。你可以很轻松地修改代码,反复地实现你的想法,你对这一点很满 意。但能够轻松实现和代码跑得够快之间的取舍却是一个世人皆知且令人惋惜的现象。 而这个问题其实是可以解决的。 有些人想要让顺序执行的过程跑得更快。有些人需要利用多核架构、集群,或者图形 处理单元的优势来解决他们的问题。有些人需要可伸缩系统在保证可靠性的前提下酌 情或根据资金多少处理更多或更少的工作。有些人意识到他们的编程技巧,通常是来 自其他语言,可能不如别人的自然。 我们会在本书中覆盖所有这些主题,给出明智的指导去了解瓶颈并提出效率更高、伸 缩性更好的解决方案。我们也会在本书中包含那些来自前人的战场故事,让你可以避 免重蹈覆辙。 Python 很适合快速开发、生产环境部署,以及可伸缩系统。Python 的生态系统里到处 都是帮你解决伸缩性的人,让你有更多时间处理那些更有挑战性的工作。 本书适合哪些人 你使用 Python 的时间已经足够长,了解为什么某些代码会跑得慢,也见过以本书讨论 的 Cython、numpy 以及 PyPy 等技术作为解决方案。你可能还有其他语言的编程经验, 因此知道解决性能问题的路不止一条。 本书主要的目标读者是那些需要解决 CPU 密集型问题的人,同时我们也会关注数据 传输以及内存密集型问题。科学家、工程师、数据分析专家、学者通常会面临这些 问题。 我们还会关注网页开发者可能面临的问题,包括数据的移动以及为了快速提升性能而 使用 PyPy 这样的即时(JIT)编译器。 如果你有一个 C(或 C++,或 Java)的背景可能会有帮助,但这不是必须的。Python 最常用的解释器(CPython——你在命令行输入 python 时启动的标准解释器)是用 C 写的,所以各种钩子和库全都血淋淋地暴露了内部的 C 机制。但我们也会谈到对 C 一 无所知的人也能使用的许多其他技术。 异步社区会员 woshigedushuren(13120020972) 专享 尊重版权 你可能还具有 CPU、内存架构和数据总线的底层知识,还是那句话,这些也不完全是 必须的。 本书不适合哪些人 本书适用于中高级 Python 程序员。积极的 Python 初学者可能可以跟上,但我们建议要 具有坚实的 Python 基础。 我们不会探讨存储系统优化。如果你有一个 SQL 或 NoSQL 瓶颈,本书可能帮不了你。 你会学到什么 我们两位作者在业界和学术界工作了很多年,专门应对大数据应用、处理我需要更快 得到答案!之类的请求、可伸缩架构等需求。我们会将自己经历千辛万苦获得的经验 传授于你,让你免于重蹈覆辙。 在每一章开头,我们会列出问题,并在后续的文字中回答(如果没有回答,告诉我们, 我们会在下一个版本中修正!)。 我们会覆盖下面这些主题: • 计算机内部结构的背景知识,让你知道在底层发生了什么。 • 列表和元组——在这些基本数据结构中细微的语义和速度区别。 • 字典和集合——在这些重要数据结构中的内存分配策略和访问算法。 • 迭代器——Python 风格的代码应该怎样写,用迭代打开无限数据流的大门。 • 纯 Python 方法——如何高效使用 Python 及其模块。 • 使用 numpy 的矩阵——像一头野兽一样使用心爱的 numpy 库。 • 编译和即时计算——编译成机器码可以跑得更快,让性能分析的结果指引你。 • 并发——高效移动数据的方法。 • multiprocessing——使用内建 multiprocessing 库进行并行计算的各种方 式,高效共享 numpy 矩阵、进程间通信(IPC)的代价和收益。 • 集群计算——将你的 multiprocessing 代码转换成在研究系统以及生产系统的 本地集群或远程集群上运行的代码。 • 使用更少的 RAM——不需要购买大型机就能解决大型问题的方法。 • 现场教训——来自前人的战场故事,让你可以避免重蹈覆辙。 2 前言 异步社区会员 woshigedushuren(13120020972) 专享 尊重版权 Python 2.7 Python 2.7 在科学和工程计算中是占主导地位的 Python 版本。在*nix 环境(通常是 Linux 或 Mac)下,64 位的版本占了主导地位。64 位让你能够拥有更宽广的 RAM 寻址范围。 *nix

pdf文档 [异步图书].Python高性能编程

专业资料 > IT/计算机 > 计算机硬件及网络 > 文档预览
351 页 0 下载 275 浏览 3.0分
温馨提示:当前文档最多只能预览 20 页,若文档总页数超出了 20 页,请下载原文档以浏览全部内容。
本文档由 woyaoziliao 于 2020-12-18上传分享
相关精品文档