首页>参考读物>计算机科学与技术>软件与程序设计

Python数据科学实践指南
作者 : 纪路 著
丛书名 : 大数据技术丛书
出版日期 : 2017-05-19
ISBN : 978-7-111-56652-6
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 249
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书共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成为数据科学领域无可争议的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

教学资源推荐
作者: [美] 凯·霍斯特曼(Cay Horstmann) 兰斯·尼塞斯(Rance Necaise) 著
作者: 苏莉蔚 主编 刘威 副主编 姜楠 白洪涛 孙元 参编
参考读物推荐
作者: Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis
作者: 吕兆星 郑传峰 宋天龙 杨晓鹏 著 尹慧敏 审校