首页>参考读物>计算机科学与技术>综合

利用Python进行数据分析
作者 : (美)Wes McKinney 著
译者 : 唐学韬 等译
出版日期 : 2013-11-07
ISBN : 978-7-111-43673-7
定价 : 89.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 464
开本 : 16
原书名 : Python for Data Analysis
原出版社: OReilly Media, Inc.
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书首先阐述了为什么选择Python进行数据分析;通过示例来阐述如何使用数据,包括:时区分布、美国1880年至2010年的婴儿姓名等;深入介绍了IPython——一个交互式的计算和开发环境,包括IPython的基础、功能、特性、运行环境、代码开发,以及基于Qt的丰富的GUI控制台、matplotlib集成和pylab模式、使用命令查看、搜索和重用历史记录;并且介绍了NumPy的基础:数组和矢量化计算;通过大熊猫的数据结构分析介绍了Python在数据分析方面的优势;在数据加载、存储和文件格式章节介绍了阅读和写作中的文本格式的数据,包括读取、写入、以及分割文本文件,读取Microsoft Excel文件,JSON数据,XML格式数据,二进制数据格式,使用HDF5格式;数据处理:清洁、转换、合并和重塑,包括:合并和合并数据集、合并数据库风格DataFrame、结合数据与重叠等;通过分析与汇总数据来绘图和可视化数据,包括关于大熊猫的数据可视化、线图、直方图和密度图、散点图等;数据汇总和分析;时间序列,日期和时间数据类型和工具;金融和经济数据应用;先进的numpy,ndarray对象内部、numpy的DTYPE层次;附录部分介绍了Python语言,包括:Python解释器、基础知识、语言的语义、标量类型、控制流、数据结构和序列、元组、表等。

图书特色

还在苦苦寻觅用Python控制、处理、整理、分析结构化数据的完整课程?本书含有大量的实践案例,你将学会如何利用各种Python库(包括NumPy、pandas、matplotlib以及IPython等)高效地解决各式各样的数据分析问题。
  由于作者Wes McKinney是pandas库的主要作者,所以本书也可以作为利用Python实现数据密集型应用的科学计算实践指南。本书适合刚刚接触Python的分析人员以及刚刚接触科学计算的Python程序员。
  ·将IPython这个交互式Shell作为你的首要开发环境。
  ·学习NumPy(Numerical Python)的基础和高级知识。
  ·从pandas库的数据分析工具开始。
  ·利用高性能工具对数据进行加载、清理、转换、合并以及重塑。
  ·利用matplotlib创建散点图以及静态或交互式的可视化结果。
  ·利用pandas的groupby功能对数据集进行切片、切块和汇总操作。
  ·处理各种各样的时间序列数据。
  ·通过详细的案例学习如何解决Web分析、社会科学、金融学以及经
  ·济学等领域的问题。
  Wes McKinney 资深数据分析专家,对各种Python库(包括NumPy、pandas、matplotlib以及IPython等)都有深入研究,并在大量的实践中积累了丰富的经验。撰写了大量与Python数据分析相关的经典文章,被各大技术社区争相转载,是Python和开源技术社区公认的权威人物之一。开发了用于数据分析的著名开源Python库——pandas,广获用户好评。在创建Lambda Foundry(一家致力于企业数据分析的公司)之前,他曾是AQR Capital Management的定量分析师。

“科学计算和数据分析社区已经等待这本书很多年了:大量具体的实践建议,以及大量综合应用方法。本书在未来几年里肯定会成为Python领域中技术计算的权威指南。”
——Fernando Pérez 加州大学伯克利分校 研究科学家, IPython的创始人之一

图书前言

针对科学计算领域的Python开源库生态系统在过去10年中得到了飞速发展。2011年底,我深深地感觉到,由于缺乏集中的学习资源,刚刚接触数据分析和统计应用的Python程序员举步维艰。针对数据分析的关键项目(尤其是NumPy、matplotlib和pandas)已经很成熟了,也就是说,写一本专门介绍它们的图书貌似不会很快过时。因此,我下定决心要开始这样的一个写作项目。我在2007年刚开始用Python进行数据分析工作时就希望能够得到这样一本书。希望你也能觉得本书有用,同时也希望你能将书中介绍的那些工具高效地运用到实际工作中去。
本书的约定
  本书使用了以下排版约定:
  斜体(Italic)
  用于新术语、URL、电子邮件地址、文件名与文件扩展名。
  等宽字体(Constant width)
  用于表明程序清单,以及在段落中引用的程序中的元素,如变量、函数名、数据库、数据类型、环境变量、语句、关键字等。
  等宽粗体(Constant width bold)
  用于表明命令,或者需要读者逐字输入的文本内容。
  等宽斜体(Constant width italic)
  用于表示需要使用用户提供的值或者由上下文决定的值来替代的文本内容。
  注意: 代表一个技巧、建议或一般性说明。
  警告: 代表一个警告或注意事项。
示例代码的使用
  本书提供代码的目的是帮你快速完成工作。一般情况下,你可以在你的程序或文档中使用本书中的代码,而不必取得我们的许可,除非你想复制书中很大一部分代码。例如,你在编写程序时,用到了本书中的几个代码片段,这不必取得我们的许可。但若将O扲eilly图书中的代码制作成光盘并进行出售或传播,则需获得我们的许可。引用示例代码或书中内容来解答问题无需许可。将书中很大一部分的示例代码用于你个人的产品文档,这需要我们的许可。
  如果你引用了本书的内容并标明版权归属声明,我们对此表示感谢,但这不是必需的。版权归属声明通常包括:标题、作者、出版社和ISBN号,例如:“Python for Data Analysis by William Wesley McKinney (O'eilly). Copyright 2013 William Wesley McKinney, 978-1-449-31979-3”。
  如果你认为你对示例代码的使用已经超出上述范围,或者你对是否需要获得示例代码的授权还不清楚,请随时联系我们:permissions@oreilly.com。
联系我们
  有关本书的任何建议和疑问,可以通过下列方式与我们取得联系:
  美国:
  O'eilly Media, Inc.
  1005 Gravenstein Highway North
  Sebastopol, CA 95472
  中国:
  北京市西城区西直门南大街2号成铭大厦C座807室(100035)
  奥莱利技术咨询(北京)有限公司
  我们会在本书的网页中列出勘误表、示例和其他信息。可以通过http://oreil.ly/Python_for_Data_Analysis访问该页面。
  要评论或询问本书的技术问题,请发送电子邮件到:
  bookquestions@oreilly.com
  想了解关于O'eilly图书、课程、会议和新闻的更多信息,请访问以下网站:
  http://www.oreilly.com.cn
  http://www.oreilly.com
  还可以通过以下网站关注我们:
  我们在Facebook上的主页:http://facebook.com/oreilly
  我们在Twitter上的主页:http://twitter.com/oreillymedia
  我们在YouTube上的主页:http://www.youtube.com/oreillymedia

上架指导

计算机\程序设计

封底文字

“科学计算和数据分析社区已经等这本书很多年了:大量具体的实践建议,以及大量将它们融会贯通的见解。本书在未来几年里肯定会成为Python领域中技术计算的权威指南。”
——Fernando Pérez
加州大学伯克利分校research scientist,IPython的创始人之一

还在苦苦寻觅用Python控制、处理、整理、分析结构化数据的完整课程?本书含有大量的实践案例,你将学会如何利用各种Python库(包括NumPy、pandas、matplotlib以及IPython等)高效地解决各式各样的数据分析问题。
由于作者Wes McKinney是pandas库的主要作者,所以本书也可以作为利用Python实现数据密集型应用的科学计算实践指南。本书适合刚刚接触Python的分析人员以及刚刚接触科学计算的Python程序员。

• 将IPython这个交互式Shell作为你的首要开发环境。
• 学习NumPy(Numerical Python)的基础和高级知识。
• 从pandas库的数据分析工具开始。
• 利用高性能工具对数据进行加载、清理、转换、合并以及重塑。
• 利用matplotlib创建散点图以及静态或交互式的可视化结果。
• 利用pandas的groupby功能对数据集进行切片、切块和汇总操作。
• 处理各种各样的时间序列数据。
• 通过详细的案例学习如何解决Web分析、社会科学、金融学以及经济学等领域的问题。

作者简介

(美)Wes McKinney 著:Wes McKinney 资深数据分析专家,对各种Python库(包括NumPy、pandas、matplotlib以及IPython等)等都有深入研究,并在大量的实践中积累了丰富的经验。撰写了大量与Python数据分析相关的经典文章,被各大技术社区争相转载,是Python和开源技术社区公认的权威人物之一。开发了用于数据分析的著名开源Python库——pandas,广获用户好评。在创建Lambda Foundry(一家致力于企业数据分析的公司)之前,他曾是AQR Capital Management的定量分析师。

译者简介

唐学韬 等译:暂无简介

译者序

说句真心话,我非常感谢有机会翻译这本书,所以这可算是第一篇我自己真正想写的译者序。虽然之前也翻译过好几本书,但都没有这次的感悟这么多、这么深!这本书是我花精力和时间最多,同时也是最不满意的一本,就是因为这些感悟 —— 我始终觉得,如果再多点时间的话,我还可以翻译得更好。
  本书的内容非常好,至少有一点非常好 —— 集中火力对付特定的应用领域。市面上介绍编程的书多如牛毛,但几乎没有几本书是针对特定应用场景的。这本书对新手来说绝对是福音,因为每看完一点就可以马上将自己手上的工作直接拿来当例子练手,这种立竿见影的学习效果,绝对会增强新手的学习信心。
  本书内容虽好,但由于作者是编辑界牛人,平时的工作肯定不少,写书方面的精力自然就不可能太多。加之美式英语本来就很口语化,导致原书口水话非常多,有些地方的从句跟绕口令似的。我在翻译的过程中尽量排除了一些,两次校稿的过程中又删除或大幅修改了一些废话,虽然这种“口水话”还存在不少,但至少不会对阅读造成太大影响。如果实在觉得语言不通顺,请随时发邮件给我,欢迎大家的善意指导(tonytang1999@126.com)。
  此外,在翻译的过程中发现了不少小问题,用词方面的错误几乎都是直接改的(小部分写了译者注,因为编辑要求我尽量标出一些来以便核对),而其他错误则几乎全部采用译者注的形式说明,还有一些原文有歧义或不详尽的地方也通过译者注的形式给出了简单说明。
  本书共12章,除非你已经什么都会了,否则我建议全部阅读。如果没有学过Python,建议先看看本书后面的附录。本书所用到的Python编程基础知识很少,所以只看那个附录完全足够了。但是,如果你一点儿编程基础都没有的话,可能需要再看一本有关Python入门的书才行(比如《Python编程实践》编注1)。
  对了,还有几件事情需要说明一下:
  每章的代码示例最好在一个IPython会话中完成,否则可能会出现一些不必要的麻烦,比如“xxx未定义”。
  如果在Windows里面用IPython,复制代码的时候建议使用cpaste,这个不多解释了。
  有关地图的那段代码可能需要找英文资料看才行,我在译者注中也说明了。这可能需要花不少时间和精力。
  由于原文各种说法不统一(甚至包括术语),虽然我尽量做了统一处理,但由于精力和时间有限,无法完全修改,所以译文中的“xxx接受yyy”、“将yyy传入xxx”说的都是“xxx函数有yyy这么个参数”;“选项”、“位置参数”、“关键字参数”、“形参”、“实参”说的都是“参数”……还有不少,我也记不清了。
  “金融和经济数据”那一章翻译得非常痛苦,因为我根本不了解那个行业,原文的术语又不标准,于是我基本都是用wikipedia和bing查英文资料,看懂之后再到baidu找中文资料,并最终确定译文。因此,可能会有不准确的情况,如果您发现了,请及时通过邮件告诉我,万分感谢。
  此外,我必须感谢机械工业出版社华章分社的编辑们。非常感谢他们能够给我这样的机会,也非常感谢他们在整个过程中给予我的各种支持和理解。希望以后还能有更加愉快的合作。
  本书大部分内容的翻译工作以及全书的统稿工作由我完成,参与本书翻译校对工作的还有黄惠庄、卢彦良、蒲巧惠、陈丽丽、胡元江、张杨、赵杰、吴斌、郭敏、林丹、王跃等。
  由于译者水平有限,书中肯定会存在一些错误或不妥之处,因此,在阅读过程中发现有任何问题,请随时联系我们(tonytang1999@126.com)或机械工业出版社,我们将及时更新本书的勘误表。当然,也非常欢迎大家对本书提出宝贵的意见和建议。
    唐学韬
    2013年6月于广州

图书目录

前言 1
第1章 准备工作 5
本书主要内容 5
为什么要使用Python进行数据分析 6
重要的Python库 7
安装和设置 10
社区和研讨会 16
使用本书 16
致谢 18
第2章 引言 20
来自bit.ly的1.usa.gov数据 21
MovieLens 1M数据集 29
1880—2010年间全美婴儿姓名 35
小结及展望 47
第3章 IPython:一种交互式计算和开发环境 48
IPython基础 49
内省 51
使用命令历史 60
与操作系统交互 63
软件开发工具 66
IPython HTML Notebook 75
利用IPython提高代码开发效率的几点提示 77
高级IPython功能 79
致谢 81
第4章 NumPy基础:数组和矢量计算 82
NumPy的ndarray:一种多维数组对象 83
通用函数:快速的元素级数组函数 98
利用数组进行数据处理 100
用于数组的文件输入输出 107
线性代数 109
随机数生成 111
范例:随机漫步 112
第5章 pandas入门 115
pandas的数据结构介绍 116
基本功能 126
汇总和计算描述统计 142
处理缺失数据 148
层次化索引 153
其他有关pandas的话题 158
第6章 数据加载、存储与文件格式 162
读写文本格式的数据 162
二进制数据格式 179
使用HTML和Web API 181
使用数据库 182
第7章 数据规整化:清理、转换、合并、重塑 186
合并数据集 186
重塑和轴向旋转 200
数据转换 204
字符串操作 217
示例:USDA食品数据库 224
第8章 绘图和可视化 231
matplotlib API入门 231
pandas中的绘图函数 244
绘制地图:图形化显示海地地震危机数据 254
Python图形化工具生态系统 260
第9章 数据聚合与分组运算 263
GroupBy技术 264
数据聚合 271
分组级运算和转换 276
透视表和交叉表 288
示例:2012联邦选举委员会数据库 291
第10章 时间序列 302
日期和时间数据类型及工具 303
时间序列基础 307
日期的范围、频率以及移动 311
时区处理 317
时期及其算术运算 322
重采样及频率转换 327
时间序列绘图 334
移动窗口函数 337
性能和内存使用方面的注意事项 342
第11章 金融和经济数据应用 344
数据规整化方面的话题 344
分组变换和分析 355
更多示例应用 361
第12章 NumPy高级应用 368
ndarray对象的内部机理 368
高级数组操作 370
广播 378
ufunc高级应用 383
结构化和记录式数组 386
更多有关排序的话题 388
NumPy的matrix类 393
高级数组输入输出 395
性能建议 397
附录A Python语言精要 401

教学资源推荐
作者: 何炎祥 伍春香 王汉飞 编著
作者: Ian Sommerville
作者: (美)William Stallings  Lawrie Brown          等著           澳大利亚新南威尔士大学  澳大利亚新南威尔士大学
参考读物推荐
作者: 徐益民 范红刚 苏凤武 编著
作者: (美)Patrick J. Lynch Sarah Horton 著
作者: Craig Larman; Bas Vodde
作者: 郑志强 张炜 刘兆兵 编著