描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787301307656
(1)全面:数据分析与大数据处理所需的所有技术,包含基础理论、核心概念、实施流程,从编程语言准备、数据采集与清洗、数据分析与可视化,到大型数据的分布式存储与分布式计算等。
(2)深入:一本书讲透1种编程语言和14种数据分析与大处理工具,以及大数据分析技术及项目开发方法。
(3)丰富:包含45个“新手问答”、17个章节的“实训”、3个项目综合实战、50道Python面试题精选。
《Python数据分析与大数据处理从入门到精通》主要讲解数据分析与大数据处理所需的技术、基础设施、核心概念、实施流程。从编程语言准备、数据采集与清洗、数据分析与可视化,到大型数据的分布式存储与分布式计算,贯穿了整个大数据项目开发流程。本书轻理论、重实践,目的是让读者快速上手。1篇首先介绍了Python的基本语法、面向对象开发、模块化设计等,掌握Python的编程方式。然后介绍了多线程、多进程及其相互间的通信,让读者对分布式程序有个基本的认识。第2篇介绍了网络数据采集、数据清洗、数据存储等技术。第3篇介绍了Python常用的数据分析工具,扩展了更多的数据清洗、插值方法,为*终的数据可视化奠定基础。第4篇是大数据分析的重点。首先介绍了Hadoop的框架原理、调度原理,MapReduce原理与编程模型、环境搭建,接着介绍了Spark框架原理、环境搭建方式,以及如何与Hive等第三方工具进行交互,还介绍了**的结构化流式处理技术。第5篇通过三个项目实例,综合介绍了如何分析网页、如何搭建分布式爬虫、如何应对常见的反爬虫、如何设计数据模型、如何设计架构模型、如何在实践中综合运用前四篇涉及的技术。本书既适合非计算机专业的编程“小白”,也适合刚毕业或即将毕业走向工作岗位的广大毕业生,以及已经有编程经验,但想转行做大数据分析的专业人士。同时,还可以作为广大职业院校、电脑培训班的教学参考用书。
第1篇 Python程序设计
第1章 Python入门 3
1.1 Python概述 4
1.2 搭建Python开发环境 6
1.3 Python开发工具介绍 11
1.4 Python软件包的管理 13
1.5 实训:编写“Hello World” 15
本章小结 16
第2章 Python基础 17
2.1 变量 18
2.2 标识符 24
2.3 代码组织 26
2.4 输入与输出 28
2.5 运算符与优先级 30
2.6 新手问答 30
2.7 实训:设计一个简易计算器 31
本章小结 31
第3章 数据类型与流程控制 32
3.1 数字类型 33
3.2 字符串类型 37
3.3 集合类型 40
3.4 流程控制语句 45
3.5 新手问答 47
3.6 实训:设计算法,输出乘法表 49
本章小结 50
第4章 函数、模块、包 51
4.1 自定义函数 52
4.2 函数参数 55
4.3 函数式编程 58
4.4 模块与包 63
4.5 新手问答 65
4.6 实训:设计算法,对列表进行排序 67
本章小结 68
第5章 面向对象的程序设计 69
5.1 面向对象 70
5.2 自定义类 71
5.3 属性 73
5.4 方法 79
5.5 类的继承 83
5.6 可调用对象 86
5.7 不可变对象 87
5.8 新手问答 88
5.9 实训:设计算法,构造一棵二叉树 90
本章小结 92
第6章 高级主题 93
6.1 生成器 94
6.2 迭代器 96
6.3 异步处理 97
6.4 错误、调试 103
6.5 新手问答 108
6.6 实训:使用多进程技术统计数据并汇总 109
本章小结 110
第2篇 数据采集与数据清洗
第7章 网络数据采集 113
7.1 HTTP请求概述 114
7.2 XPath网页解析 114
7.3 Scrapy数据采集入门 119
7.4 Scrapy应对反爬虫程序 126
7.5 CrawlSpider类 131
7.6 分布式爬虫 132
7.7 新手问答 136
7.8 实训:构建百度云音乐爬虫 136
本章小结 139
第8章 数据清洗 140
8.1 数据清洗的意义 141
8.2 数据清洗的内容 141
8.3 数据格式与存储类型 142
8.4 数据清洗的步骤 145
8.5 数据清洗的工具 147
8.6 新手问答 151
8.7 实训:清洗百度云音乐数据并储存到CSV 151
本章小结 152
第3篇 数据分析与可视化
第9章 NumPy数值计算 155
9.1 NumPy基础 156
9.2 形状操作 164
9.3 副本、浅拷贝和深拷贝 166
9.4 高级索引 168
9.5 排序统计 171
9.6 新手问答 173
9.7 实训:销售额统计 174
本章小结 175
第10章 Matplotlib可视化 176
10.1 图形的基本要素 177
10.2 绘图基础 177
10.3 设置样式 186
10.4 图形样例 189
10.5 新手问答 198
10.6 实训:营业数据可视化 199
本章小结 201
第11章 Pandas统计分析 202
11.1 Pandas数据结构 203
11.2 基础功能 210
11.3 统计分析 217
11.4 时间数据 229
11.5 数据整理 231
11.6 高级功能 234
11.7 读写MySQL数据库 236
11.8 新手问答 237
11.9 实训:成绩分析 237
本章小结 239
第12章 Seaborn可视化 240
12.1 Seaborn概述 241
12.2 可视化数据关系 242
12.3 根据数据分类绘图 246
12.4 单变量与双变量 251
12.5 线性关系 256
12.6 新手问答 258
12.7 实训:成绩分析可视化 258
本章小结 260
第4篇 大数据存储与快速分析篇
第13章 Hadoop数据存储与基本操作 263
13.1 Hadoop概述 264
13.2 Hadoop数据存储与任务调度原理 268
13.3 Hadoop基础环境搭建 273
13.4 Hadoop部署模式 294
13.5 Hadoop常用操作命令 298
13.6 新手问答 300
13.7 实训:动手搭建Hadoop集群环境 301
本章小结 309
第14章 Spark入门 310
14.1 Spark概述 311
14.2 Spark核心原理 312
14.3 Spark基础环境搭建 315
14.4 Spark运行模式 317
14.5 新手问答 321
14.6 实训:动手搭建Spark集群 322
本章小结 323
第15章 Spark RDD编程 324
15.1 RDD设计原理 325
15.2 RDD编程 328
15.3 键值对RDD 335
15.4 文件读写 340
15.5 编程进阶 342
15.6 新手问答 347
15.7 实训:统计海鲜销售情况 348
本章小结 350
第16章 Spark SQL编程 351
16.1 Spark SQL概述 352
16.2 创建DataFrame对象 360
16.3 DataFrame常用API 364
16.4 保存DataFrame 370
16.5 新手问答 372
16.6 实训:统计手机销售情况 373
本章小结 375
第17章 Spark流式计算编程 376
17.1 流计算简介 377
17.2 Discretized Stream 379
17.3 Structured Streaming 385
17.4 新手问答 397
17.5 实训:实时统计贷款金额 397
本章小结 398
第5篇 项目实战篇
第18章 分析电商网站销售数据 401
18.1 目标分析 402
18.2 数据采集 405
18.3 数据分析 411
本章小结 416
第19章 分析旅游网站数据 417
19.1 目标分析 418
19.2 数据采集 420
19.3 数据分析 425
本章小结 429
第20章 分析在售二手房数据 430
20.1 目标分析 431
20.2 数据采集 434
20.3 数据分析 440
本章小结 446
附录:Python常见面试题精选 447
主要参考文献 450
Python 的创始人是Guido van Rossum。1991 年,**个用C 语言开发的Python 编译器诞生。
1996 年,Python 发行了**个公开版本1.4。由于其简单、易用、可以移植等特点,Python 得到了飞速发展。在编写本书时,**主要版本已经是3.7 版本。
Python 版本发布进程如下。
1996 年至2000 年,发布的Python 版本是 1.4-1.6。
2000 年至2008 年,发布的Python 版本是 2.0-2.7。
2008 年至2018 年,发布的Python 版本是 3.0-3.7。
请注意,2008 年后,Python 开始同时维护2.X 和3.X 两个版本。这是因为当时很多系统都不能正常升级到3.0 版本,于是后来开发了2.7 版本作为过渡。
Python 从诞生起就具有类、函数、异常处理、表、字典等核心数据类型,同时支持用“模块”来扩展功能。在Python 的发展进程中,开发者不断加入lambda、map、 f ilter 和reduce 等高阶函数,极大地丰富了Python 的API。同时引入了垃圾回收器等高级功能,简化了程序员对内存的手动管理流程。
当前的版本中,Python 已经具备了以下重要的语言特性。
(1)有多种基本数据类型可供选择:数字(浮点数、复数和无限长整数)、字符串(ASCII和Unicode)、列表和字典。
(2)支持使用类和多继承的面向对象编程。
(3)代码可以分为模块和包。
(4)支持引发和捕获异常,从而实现更清晰的错误处理。
(5)数据类型是强类型和动态类型。混合不兼容的类型(如尝试添加字符串和数字)会导致异常,从而能够更快地捕获错误。
(6)包含高级编程功能,如生成器和列表推导。
(7)其自动内存管理功能使用户不必在代码中手动分配和释放内存。
评论
还没有评论。