当前: 首页 - 图书专区 - Python数据科学实践指南
Python数据科学实践指南


  在线购买
纪路 著
978-7-111-56652-6
59.00
249
2017年05月19日

计算机 > 软件与程序设计

474
简体中文
16

店面
大数据技术丛书
陈佳媛







本书共22章,就像程序语言中数组下界从0开始一样,本书从第0章开始。在这一章中我会回答关于大数据的几个问题——何为大数据、数据挖掘,为什么选择Python作为工具,需要什么基础才能从事数据科学工作,以及如何成为一名合格的数据科学家。在接下来的第1至第8章中我会通过每章一个实际应用的例子教授Python编程基础,从零基础开始。在第9章中会教授如何使用Python操作数据库,以及读写Excel表格,因为这两种形式是最普通的用来给非技术人员呈现数据分析结果的形式,有必要学习。第10章会讲解Python科学计算库Numpy,后半本书的很多内容都依赖于这个工具的掌握。第11章将会教授matplotlib和ggplot两个绘图库,用于数据可视化(从工程角度这种方式并不常用,常用的是用网页来呈现,不过就光这部分又能写一本书了)入门。第12章会结合一些统计学例子为读者补充一些统计学基础,因为最常用的数据挖掘工具就是统计。从第13章开始到第19章每一章讲解一种数据挖掘算法,我精心选择了一些不太难以理解,编程实现起来相对简单的算法,通过实现算法这一实战训练强化本书的知识的学习,同时也对数据挖掘有了一定的认识。第20章和21章,会初步介绍两个最流行的分布式计算平台,以及使用Python为其编程的基础内容。最后第22章将为读者推荐学完本书之后的进阶读物。
资深大数据工程师多年经验总结,写给新人的大数据入行指南
广涉大数据技术的各个方面,解密数据科学家的工作内容,通过实战带领读者走进梦想中的职业

数据科学对未来生活的重要意义无须多言,事实上,在生活中的各个领域都会有其应用的场景。可能有一天数据科学会像现在的计算机一样常见,以至于我们都无须特意提及,就已经到处使用它的成果了,比如如何购买理财产品(通过理性的数据分析来做一些决策)等。本书是一本数据科学入门图书,你可以从零基础开始,从实际操作的角度一窥数据科学领域中涉及的各项技术,但又不会太复杂以至于让人难以阅读。如果你喜欢其中的某个特定的部分,可以对其进行深入的研究,希望本书能起到抛砖引玉的效果。

本书特色:
对读者的知识背景没有任何硬性的要求,当然,如果你学的是理工科,或者学过编程,那自然更佳。
涉及数据科学各个方面的基础概念和入门示例,适合首次尝试了解数据科学的读者,可以帮助读者在短时间内对这个领域有一个概略性的了解。
介绍了一些实用的Python方法和技巧,就算把这本书当成一本Python入门书也可以,有的人通过爬虫学习Python,有的人通过做网站学习Python,这本书则提供了另外一种学习Python的途径。
大部分章节都包含了采用真实数据编写的示例,读者可以从处理这些数据的过程中学习到基本的数据处理流程和方法。而且这些数据都是公开的、免费的,任何人都可以轻易获取。读者也可以沿着作者寻找数据的思路找到更多的数据来练习。
在本书的最后还对时下热门的Hadoop和Spark做了一些入门的介绍,并说明了如何在Python环境中使用它们,希望能够对读者有所帮助。

本书是一本Python数据科学的入门图书,作者结合多年工作和指导新人的经验,希望以一条简单的路线来为零基础的读者介绍数据科学。在本书中主要使用Python编程语言,来处理真实的数据,从而满足我们对于未知的好奇。如果读者喜欢其中的某一个领域,可以以此为契机进行深入的学习。
本书分为三大部分,第1~4章是Python基础,这个部分会介绍阅读本书必须掌握的Python知识,但并不会包含很复杂的编程知识,比如面向对象编程就不是必要的,因为Python支持过程式编程,可以直接编写函数。第5~7章会讲解Python直接提供的数据处理工具,这些工具包括一些易用的数据结构、标准库和第三方工具。学习使用这些工具可以让我们快速地实现某些简单的算法,而不用花费大量的时间“重复造轮子”,Python处理数据的高效性在此处体现得淋漓尽致。第8~12章是一些实际的案例操作分解,涉及Python主要擅长的几个领域:统计、爬虫、科学计算、Hadoop&Spark中的集成、图计算等。最后的三个附录分别介绍了一些关于Python的扩展知识,比如如何编写同时兼容Python 2和Python 3的代码,如何安装完整的Python开发环境,以及一些常用的Python技巧,如处理时间、文件I/O等。
为什么要写这本书
我接触大数据技术的时间算是比较早的,四五年前当大数据这个词火遍互联网的时候,我就已经在实验室里学习编程及算法的知识。那个时候我一心想要做学术,每天阅读大量的英文文献,主要兴趣更多的是在机器人和人工智能上。研究生毕业时我本来想实现早先的愿望,继续攻读博士学位,不过思来想去觉得不应该错过大数据这个机会,所以毅然决定投入大数据行业中。
在工作之初,市面上已经存在一些介绍大数据相关技术的权威著作,其中很多还是很底层的或特定领域的专著。但即使是我这种自诩为“学院派”的人看这些书,头脑也会经常开小差。而大数据相关的技术又特别庞杂,包括计算框架、网络爬虫、机器学习算法、编程语言、数据库、文本分析、数据流水线的架构,甚至还包括前端可视化等众多方面,只有对它们都有涉猎,才能更好地胜任相关的工作。所以我读过很多的相关图书,这确实为我以后的工作打下了坚实的基础,不过随着工作内容的增加,以及新同事的到来,更多的问题相继涌现。首当其冲的就是,并不是每个人都有足够的基础来阅读这些专业著作,而且每个人的情况各不相同,有的是编程基础差,有的是数学基础差,有的是英语基础差,这也导致我的这套学习方法难以推广开来。所以我想写一本关于大数据技术的手册,其目的并不是为读者讲明白所有技术背后的原理,而是告诉读者某项技术可以用于哪些工作中,哪些工作需要哪些工具。
读完这本手册,可以帮助读者建立一个相对完整的大数据生态的概念,其中所讲的每一个工具都值得读者进行更深入的研究(你也可以像我一样,对其中的两三项进行非常深入的研究),也许在研究过程中,你会成为该领域的专家。如果现在正在看这本书的你是一位技术决策者,那么我希望本书的介绍能帮助你下定决心使用其中的某项技术,比如写作全书的Python语言就是一门非常好的数据处理语言,它能快速编码,且具有强大的字符串处理能力,拥有大量成熟的大数据类库,这些都使Python成为数据科学领域无可争议的No. 1语言;或许你的团队可以仅用Python编写大规模分布式爬虫程序(虽然本书介绍的是单机的简化版)就能大幅度地提升工作的效率。Scrapy可能是爬虫领域最有名的框架了,你也可以像我一样实现属于你自己的版本。当然这本书也是一本Python入门书,所以读者无须担心阅读门槛,你可以从零基础开始学习,并体验整个学习过程所带来的愉悦。
读者对象
根据工作职责的不同,我为本书划分出了一些可能的读者,具体如下。
想要了解大数据生态的学生。
需要快速入门大数据的技术人员。
需要了解技术细节以做决策的技术管理者。
希望入门Python但不知如何下手的编程爱好者。
如何阅读本书
本书分为三部分,其中第1~4章是Python基础,这个部分会介绍阅读本书所必须掌握的Python知识,但并不会包含很复杂的编程知识,比如面向对象编程就不是必要的,因为Python支持过程式编程,可以直接编写函数,使用这种方式编程更适合教学,因为所有的执行步骤都是线性的,方便逐步讲解。第5~7章讲解的是Python直接提供的数据处理工具,这些工具包括一些易用的数据结构、标准库和第三方工具。学习这些工具可以让我们快速地实现某些简单的算法,而不用花费大量的时间“重复造轮子”,Python处理数据的高效性在此处将体现得淋漓尽致。第8~12章是一些实际的案例,将会涉及Python主要擅长的几个领域:统计、爬虫、科学计算、Hadoop&Spark中的集成、图计算等。最后的三个附录分别介绍了关于Python的一些扩展知识,比如如何编写同时兼容Python 2和Python 3的代码,如何安装完整Python开发环境,以及一些常用的Python技巧,如处理时间、文件I/O等。
勘误和支持
由于笔者的水平有限,编写的时间也很仓促,书中难免会出现一些错误或不准确的地方,恳请读者批评指正。另外本书的部分代码会上传到Github上,其网址为:https://github.com/magigo/data_science_tool_book_code。你可以将书中的错误发布在Issues中,或者向我提问,我会尽可能地回答你的问题。当然如果是比较好的问题我也希望你能在知乎上邀请我回答,这样就能有更多的人受益于你的问题,我的知乎主页为:https://www.zhihu.com/people/ji-lu-15-70。如果你有更多的宝贵意见,也欢迎你发送邮件至我的邮箱magi-go@126.com,我很期待能够听到你们的真挚反馈。
致谢
首先要感谢“仁慈的独裁者”吉多·范罗苏姆(Guido van Rossum),他在我出生的那一年(1989年)发明了Python编程语言,不仅为我带来了一份全职的工作,还为我带来了无尽的乐趣。而且我与Python似乎真的有着某种缘分,不仅出生年份相同,生肖也相同,不知道吉多是否知道1989年正好也是我国的农历蛇年呢。
感谢机械工业出版社华章公司的编辑Lisa邀请我写作本书,刚开始时我乐观地估计本书很快就能写作完成。不过就像大多数软件项目一样——它延期了。感谢Lisa在百忙中适时地督促我写作,没有她我想这本书与读者见面的时间还会延后。
最后我要特别感谢我的爸爸、妈妈和前女友(你知道我要强调“前”这个字),感谢你们促进了我的身心成长,是你们促使我变得像现在这般强大!
谨以此书,献给我最亲爱的家人,以及众多热爱Python的朋友们。

纪 路
中国,北京,2017年1月
前言
第0章 发现、出发 1
0.1 何谓数据科学 1
0.1.1 海量的数据与科学的方法 2
0.1.2 数据科学并不是新概念 3
0.1.3 数据科学是一个系统工程 3
0.2 如何成为数据科学家 4
0.3 为什么是Python 6
0.4 一个简单的例子 8
第1章 Python介绍 9
1.1 Python的版本之争 10
1.2 Python解释器 11
1.2.1 Mac OS X系统 11
1.2.2 Linux系统 11
1.2.3 Windows系统 12
1.3 第一段Python程序 14
1.4 使用Python shell调试程序 15
第2章 Python基础知识 19
2.1 应当掌握的基础知识 19
2.1.1 基础数据类型 19
2.1.2 变量和赋值 21
2.1.3 操作符及表达式 22
2.1.4 文本编辑器 23
2.2 字符串 27
2.3 获取键盘输入 29
2.4 流程控制 30
2.4.1 条件判断 30
2.4.2 循环 31
2.4.3 缩进、空白和注释 33
第3章 函数及异常处理 35
3.1 函数和函数的参数 36
3.1.1 定义函数 37
3.1.2 关键字参数和默认参数 38
3.1.3 可变数量的参数 39
3.1.4 递归 40
3.2 闭包 41
3.3 异常和断言 44
第4章 高级字符串处理 47
4.1 字符集和字符编码 47
4.1.1 ASCII字符集和编码 48
4.1.2 Unicode字符集及UTF-8编码 49
4.2 字符串操作和格式化 51
4.2.1 字符串的基本操作 51
4.2.2 字符串分割 52
4.2.3 字符串格式化 52
4.3 正则表达式 53
4.3.1 正则表达式入门 54
4.3.2 在Python中使用正则表达式 57
第5章 容器和collections 60
5.1 元组 60
5.2 列表 62
5.2.1 引用传递 64
5.2.2 列表解析式 65
5.3 字典 66
5.4 collections 69
5.4.1 namedtuple 69
5.4.2 Counter 70
5.4.3 defaultdict 71
5.4.4 OrderedDict 71
第6章 Python标准库简介 73
6.1 math模块 73
6.1.1 常见常量 73
6.1.2 无穷 74
6.1.3 整数转换 75
6.1.4 绝对值和符号 76
6.1.5 常用计算 77
6.1.6 指数和对数 77
6.2 time 79
6.3 random 82
6.3.1 随机数生成器 82
6.3.2 取样 84
6.4 glob和fileinput 85
6.5 bz2和gzip 87
6.6 pprint 88
6.7 traceback 90
6.8 JSON 91
第7章 用Python读写外部数据 93
7.1 CSV文件的读写 94
7.1.1 读取CSV文件 94
7.1.2 创建CSV文件 95
7.1.3 处理方言 96
7.1.4 将读取的结果转换成字典 97
7.2 Excel文件的读写 98
7.2.1 读取Excel文件 98
7.2.2 写Excel文件 99
7.3 MySQL的读写 101
7.3.1 写入MySQL 103
7.3.2 读取MySQL 105
第8章 统计编程 106
8.1 描述性统计 106
8.1.1 人口普查数据 106
8.1.2 均值和中位数 110
8.1.3 方差和标准差 111
8.1.4 分布 113
8.2 数据可视化入门 116
8.2.1 pyplot基础 116
8.2.2 柱状图和饼图 119
8.3 概率 122
第9章 爬虫入门 124
9.1 网络资源及爬虫的基本原理 124
9.2 使用request模块获取HTML内容 127
9.2.1 关于HTTP协议 127
9.2.2 使用requests的get方法获取HTML内容 129
9.3 使用Xpath解析HTML中的内容 133
9.3.1 HTML的层级和Xpath的基本概念 134
9.3.2 使用谷歌浏览器快速创建Xpath路径 137
9.3.3 使用谷歌浏览器复制需要JS渲染的HTML页面 138
9.4 实战:爬取京东商品品类及品牌列表 144
第10章 数据科学的第三方库介绍 149
10.1 Numpy入门和实战 149
10.1.1 Numpy基础 150
10.1.2 Numpy基本运算 153
10.1.3 Numpy高级特性 159
10.1.4 kNN实战 162
10.2 Pandas的入门和实战 167
10.2.1 Pandas基础 168
10.2.2 泰坦尼克号生存率分析实战 176
10.3 Scikit-learn入门和实战 180
10.3.1 机器学习术语 181
10.3.2 Scikit-learn基础 183
10.3.2 实战 186
第11章 利用Python进行图数据分析 193
11.1 图基础 193
11.2 NetworkX入门 194
11.2.1 基本操作 194
11.2.2 为图中的元素添加属性 196
11.2.3 有向图及节点的度数 197
11.2.4 构建图及图的操作 197
11.3 使用NetworkX进行图分析 199
11.3.1 利用联通子图发现社区 199
11.3.2 通过三角计算强化社区发现 201
11.3.3 利用PageRank发现影响力中心 202
第12章 大数据工具入门 204
12.1 Hadoop 204
12.1.1 Hadoop的计算原理 205
12.1.2 在Hadoop上运行Python程序 208
12.2 Spark 211
12.2.1 为什么需要Spark 211
12.2.2 如何学习Spark 212
12.3 大数据与数据科学的区别 215
附录A 编写Python 2与Python 3兼容的代码 217
附录B 安装完整的Python开发环境 225
附录C 常用的Python技巧 235
计算机\程序设计
读者书评
发表评论



高级搜索
数学与泛型编程:高效编程的奥秘
OpenACC并行程序设计:性能优化实践指南
Docker从入门到实战


版权所有© 2017  北京华章图文信息有限公司 京ICP备08102525号 京公网安备110102004606号
通信地址:北京市百万庄南街1号 邮编:100037
电话:(010)68318309, 88378998 传真:(010)68311602, 68995260
高校教师服务
华章教育微信
诚聘英才
诚聘英才