对于希望使用Python来完成数据分析工作的人来说,学习IPython、Numpy、pandas、Matplotlib这个组合是目前看来不错的方向。《Python数据分析从入门到精通》就是这样一本循序渐进的书。
《Python数据分析从入门到精通》共3篇14章。第1篇是Python数据分析语法入门,将数据分析用到的一些语言的语法基础讲解清楚,为接下来的数据分析做铺垫。第2篇是Python数据分析工具入门,介绍了Python数据分析四剑客IPython、Numpy、pandas、Matplotlib。第3篇是Python数据分析案例实战,包括两个案例,分别是数据挖掘和玩转大数据,为读者能真正使用Python进行数据分析奠定基础。
《Python数据分析从入门到精通》内容精练、重点突出、实例丰富,是广大数据分析工作者必备的参考书,同时也非常适合大、中专院校师生学习阅读,还可作为高等院校统计分析及相关专业的教材。
一本书搞定Python数据分析四剑客:IPython、Numpy、Matplotlib、pandas
基于Python 3.6,兼容Python 3.x等众多版本
以多小代码案例、多动手的方式,使读者在实践中成长
前 言
由于Python具有简单、易学、免费开源、可移植性、可扩展性等特点,所以它的受欢迎程度扶摇直上。再加上Python拥有非常丰富的库,这也使得它在数据分析领域有着越来越广泛的应用。如果你已经决定学习Python数据分析,但是之前没有编程经验,那么本书将会是你的正确选择。
本书的第1篇主要介绍学习数据分析必备的一些Python语法基础,包括Python的安装、数据类型、数据结构、模块、类、异常处理、使用pip安装Python需要的一些工具等;第2篇主要介绍Python在数据处理和科学计算方面的工具和方法,包括IPython交互式壳的使用、Jupyter Notebook的使用和Numpy的使用,还介绍了Python的核心数据分析处理库pandas,以及Python著名的2D绘图库Matplotlib;第3篇通过数据挖掘和玩转大数据两个案例总结和应用前面所学的知识。
这三篇的层进正好是Python数据分析入门者的阶梯,读者通过学习这三部分内容,即可迈入数据分析的门槛。
本书的特点
Python是当前非常流行的面向对象编程语言,本书将其在数据分析处理方面的特色发挥到极致。本书的主要特点如下:
.Python被大量应用在数据挖掘和机器学习领域,其中使用极其广泛的是IPython、Numpy、pandas、Matplotlib等库。本书详细地介绍了这些库的组成与使用,为科学计算相关人员提供了有用的参考资料。
.本书采取循序渐进的写作风格,对于工具的安装、使用步骤、方法技巧逐步展开,加以图解和应用场景,即使完全不懂Python和数据分析的人员,也可以流畅地读完本书。
.无论哪种语言,编程的方法、模式、数据结构、算法都是相通的。本书将科学计算、数据结构与各种工具和方法完美结合,让非Python读者也能融会贯通,让学习统计的人能找到更适合的统计方法和数据分析处理方法。
.本书最后的两个实战案例适合数据分析入门者,案例的步骤详细、分析到位,能为读者入手真实项目打下良好的基础。
本书的内容安排
本书共3篇14章,主要章节规划如下:
第1章介绍了Python的发展历程、特性,帮助读者搭建最基础的数据分析环境,下载开发语言,选择开发工具,然后在此基础上开发自己的第一个Python程序。读者在学完本章内容后应该对Python有一个基础的认识,知道为什么选择它来进行数据分析。
第2章介绍了Python的基础语法,包括它的代码组织形式、如何缩进、如何注释等,以及输入/输出该如何处理,在中文环境下如何更好地使用Python是本章的重点,最后还通过一个实例复习了Python的这些语法。读者在学完本章内容后可以轻松地编写一些简单的Python程序。
第3章介绍了Python的数据类型与流程控制语句。如果读者已有编程基础,那么阅读本章内容不会有任何压力。如果没有编程基础,那么学习一门语言的流程控制最关键的就是这些知识。读者在阅读完本章后就能轻松阅读更大的Python程序。
第4章介绍了可复用的函数与模块。这些内容较为复杂,但却是进行数据分析的关键。每个数据处理过程我们都会用到函数或模块,而我们后期用到的数据分析库也可以说是一个大函数。所以学习完本章内容,读者应该能够看明白一个完整的Python库。
第5章介绍了数据结构与算法,这是数据分析的基础,也是人工智能的基础。利用算法我们可以找到解决方案,也可以找到最优路径,还可以更高效地完成数据分析任务。读者如果没有看懂本章内容,一定要反复阅读,直到学会为止。
第6章介绍了面向对象的Python。面向对象已经成为每门语言都具备的特性,类、对象、继承这些概念都是面向对象的基础。如果读者没有编程经验,则阅读本章可能会有一定的难度,但是了解了对象的概念,就能学会如何编写更高效的代码、如何让代码和代码之间联动起来。
第7章介绍了异常处理与程序调试。机器毕竟不是人,如果出现错误,则可能会导致死机,或者数据出错。为了防止这些错误的发生,或者防止程序的使用方能得到反馈,我们必须学会Python的异常处理功能。并且当程序发生错误时,我们还要通过程序调试找到错误所在。
第8章介绍了pip软件包管理。既然在做数据分析时我们要用到很多数据分析库,那么如何下载、安装或管理这些库就成了数据分析的第一步。pip就是这样一个工具,它能下载、安装、更新、显示、搜索我们需要的数据分析库。
第9章介绍了IPython科学计算库,它是使用Python进行数据分析、处理、呈现的重要选择之一。本章主要介绍了Python科学计算库的安装方法、IPython壳的一些特性和基本功能、Jupyter Notebook的安装和使用方法。IPython壳的使用是本章的重点,也是数据分析处理的基础工具,希望读者能够消化本章内容,为真正做好数据项目打下基础。
第10章介绍了Numpy科学计算库,主要介绍了它的数组对象及数组对象的一些基本属性和生成数组的基本方法,还包括数组的索引和分片等基本操作,这部分内容是Numpy数据处理的核心。本章介绍的代数运算函数、线性代数、统计函数等内容会让读者觉得有些困惑,但这已经进入了数据分析的关键时刻,所以仍建议读者对本章的内容融会贯通。
第11章介绍了pandas数据分析处理库,主要包括它的序列、数据框的基本操作,还包括pandas里处理默认值、读取常见格式的文本数据,以及数据的组合和分组操作。最后介绍了pandas的时间序列和一个处理实际数据集的案例,读者掌握了这些内容,就可以更好地处理数据。
第12章介绍了Matplotlib的Pyplot和Artist模块,以及pandas的绘图功能。对于读者来说,Pyplot模块是需要掌握的,Artist模块是需要了解的,pandas的绘图功能在实际数据分析中要能熟练应用。
第13章是数据挖掘的案例。首先介绍了著名的贝叶斯理论,然后实现了贝叶斯分类器,最后实现了协同过滤算法,这些都是数据挖掘、分析领域的基础算法。建议读者尝试自己编写代码,熟练掌握贝叶斯分类器和协同过滤算法的使用。
第14章是玩转大数据的案例。鉴于本书主要针对数据分析入门者,所以本章也逐步实现了数据的分析过程,从了解数据到分析数据,最后到代码实现,相信读者学完本章内容后,就能真正动手分析大数据了。
本书由浅入深、从理论到实践,尤其适合初学者逐步学习和完善自己的知识结构。
适合阅读本书的读者
.希望从事数据分析相关工作的人员。
.数据分析工作人员。
.大数据从业人员。
.Python爱好者。
.人工智能从业人员。
.统计行业的人员。
.大、中专院校统计相关专业的学生。
张啸宇:热衷于一切计算机技术,目前在搜狐公司从事数据分析、数据挖掘、深度学习、后端开发等方面的工作。计划做一个Python技术学习交流的网站,到时欢迎各位来闲逛。
李静:天津大学软件工程硕士毕业,对利用Python进行数据处理、整理、分析等有比较深入的研究,并在辅助教学实践中积累了较为丰富的经验,广受好评。本书也是结合实践积累,以多小代码案例、多动手的方式,使读者在实践中成长。
目 录
第1篇 Python数据分析语法入门
第1章 初识Python1
1.1 Python是什么2
1.2 Python有什么优点3
1.2.1 Python是自由开源的软件3
1.2.2 Python是跨平台的3
1.2.3 Python功能强大4
1.2.4 Python是可扩展的4
1.2.5 Python易学易用5
1.3 其他程序设计语言中的Python5
1.3.1 Jython5
1.3.2 Python for .NET6
1.3.3 IronPython6
1.4 快速搭建Python开发环境7
1.4.1 Python的下载和安装7
1.4.2 用Visual Studio编译Python源代码9
1.4.3 Python开发工具:Vim10
1.4.4 Python开发工具:Emacs15
1.4.5 Python开发工具:PythonWin18
1.4.6 其他的Python开发工具20
1.5 第一个Python程序22
1.5.1 从Hello, Python!开始22
1.5.2 Python的交互式命令行24
1.6 本章小结25
第2章 Python起步必备27
2.1 Python代码的组织形式和注释方式27
2.1.1 用缩进来分层28
2.1.2 代码的两种注释方式29
2.1.3 Python语句的断行30
2.2 Python的基本输入/输出函数31
2.2.1 接收输入的input()函数31
2.2.2 输出内容的print()函数32
2.3 Python对中文的支持33
2.3.1 Python 3之前的版本如何使用中文33
2.3.2 更全面的中文支持36
2.4 简单实用的Python计算器37
2.4.1 直接进行算术运算37
2.4.2 math模块提供丰富的数学函数38
2.4.3 Python对大整数的支持39
2.5 本章小结40
第3章 Python的数据类型与流程控制语句41
3.1 Python数据类型:数字42
3.1.1 整型和浮点型42
3.1.2 运算符43
3.2 Python数据类型:字符串45
3.2.1 Python中的字符串45
3.2.2 字符串中的转义字符46
3.2.3 操作字符串46
3.2.4 字符串的索引和分片49
3.2.5 格式化字符串50
3.2.6 字符串、数字类型的转换50
3.2.7 原始字符串51
3.3 Python数据类型:列表和元组52
3.3.1 创建和操作列表52
3.3.2 创建和操作元组53
3.4 Python数据类型:字典54
3.5 Python数据类型:文件55
3.6 Python数据类型:布尔值56
3.7 Python的流程控制语句56
3.7.1 分支结构:if语句57
3.7.2 循环结构:for语句59
3.7.3 循环结构:while语句62
3.8 本章小结63
第4章 可复用的函数与模块64
4.1 Python自定义函数65
4.1.1 函数的定义65
4.1.2 函数调用66
4.2 参数让函数更有价值67
4.2.1 有默认值的参数67
4.2.2 参数的传递方式69
4.2.3 如何传递任意数量的参数70
4.2.4 用参数返回计算结果70
4.3 变量的作用域71
4.4 最简单的函数:使用lambda表达式定义函数72
4.5 可重用结构:Python模块73
4.5.1 Python模块的基本用法73
4.5.2 Python在哪里查找模块75
4.5.3 是否需要编译模块77
4.5.4 模块也可独立运行78
4.5.5 如何查看模块提供的函数名79
4.6 用包来管理多个模块80
4.6.1 包的组成80
4.6.2 包的内部引用81
4.7 本章小结81
第5章 数据结构与算法82
5.1 表、栈和队列82
5.1.1 表83
5.1.2 栈84
5.1.3 队列86
5.2 树和图88
5.2.1 树88
5.2.2 二叉树89
5.2.3 图93
5.3 查找与排序95
5.3.1 查找96
5.3.2 排序97
5.4 本章小结100
第6章 面向对象的Python101
6.1 面向对象编程概述101
6.1.1 Python中的面向对象思想102
6.1.2 类和对象102
6.2 在Python中定义和使用类103
6.2.1 类的定义104
6.2.2 类的使用105
6.3 类的属性和方法106
6.3.1 类的属性107
6.3.2 类的方法108
6.4 类的继承111
6.4.1 使用继承111
6.4.2 Python的多重继承112
6.5 在类中重载方法和运算符114
6.5.1 方法重载114
6.5.2 运算符重载115
6.6 在模块中定义类117
6.7 本章小结119
第7章 异常处理与程序调试120
7.1 异常的处理120
7.1.1 使用try语句捕获异常121
7.1.2 常见异常的处理123
7.1.3 多重异常的捕获124
7.2 用代码引发异常125
7.2.1 使用raise语句引发异常126
7.2.2 assert简化的raise语句127
7.2.3 自定义异常类128
7.3 使用pdb模块调试Python脚本128
7.3.1 调试语句块129
7.3.2 调试表达式129
7.3.3 调试函数130
7.3.4 设置断点131
7.3.5 pdb调试命令131
7.4 在PythonWin中调试脚本134
7.5 本章小结136
第8章 pip软件包管理137
8.1 安装pip137
8.2 更新pip138
8.3 pip常用操作138
8.3.1 安装软件包138
8.3.2 卸载软件包139
8.3.3 更新软件包139
8.3.4 显示本地所有已经安装的软件包139
8.3.5 显示软件包的细节139
8.3.6 搜索软件包140
8.3.7 通过wheel文件安装软件包141
8.4 本章小结141
第2篇 Python数据分析工具入门
第9章 IPython科学计算库142
9.1 IPython简介143
9.2 安装IPython及其他相关库144
9.2.1 使用Anaconda安装144
9.2.2 使用pip安装145
9.3 IPython壳基础146
9.3.1 自动补全147
9.3.2 检查149
9.3.3 %run命令150
9.3.4 快捷键150
9.3.5 异常和错误定位151
9.3.6 魔法方法151
9.3.7 和操作系统交互152
9.3.8 代码分析:%prun和%run153
9.3.9 目录标签系统155
9.3.10 嵌入IPython155
9.4 融合Matplotlib库和Pylab模型156
9.5 输入和输出变量157
9.6 交互式调试器158
9.7 计时功能159
9.8 重新载入模块160
9.9 配置IPython161
9.10 Jupyter162
9.10.1 基于Qt的控制台162
9.10.2 Jupyter Notebook165
9.11 IPython和Jupyter Notebook的关系170
9.12 本章小结173
第10章 Numpy科学计算库174
10.1 Numpy基础174
10.1.1 数组对象介绍175
10.1.2 生成数组176
10.1.3 数组对象数据类型180
10.1.4 打印数组182
10.2 数组的基本操作184
10.3 基本的分片和索引操作186
10.4 高级索引189
10.4.1 整数索引189
10.4.2 布尔索引190
10.4.3 布尔索引的简单应用192
10.5 改变数组的形状193
10.6 组装、分割数组195
10.7 数组的基本函数196
10.8 复制和指代198
10.9 线性代数199
10.10 使用数组来处理数据201
10.11 Numpy的where()函数和统计函数203
10.11.1 where()函数203
10.11.2 统计函数205
10.12 输入与输出206
10.12.1 二进制文件206
10.12.2 文本文件207
10.13 生成随机数208
10.14 数组的排序和查找210
10.14.1 排序210
10.14.2 查找212
10.15 扩充转换213
10.16 本章小结215
第11章 pandas数据分析处理库216
11.1 pandas数据结构介绍217
11.1.1 序列217
11.1.2 数据框221
11.2 索引对象226
11.3 核心的基本函数227
11.4 索引和旋转229
11.5 算术运算与对齐232
11.6 处理默认值233
11.7 多级索引237
11.8 读/写数据239
11.9 组合数据243
11.10 数据分组操作247
11.11 时间序列249
11.11.1 时间序列介绍250
11.11.2 使用时间序列作图253
11.12 本章小结259
第12章 Matplotlib数据可视化260
12.1 Pyplot模块介绍261
12.1.1 plot()函数261
12.1.2 绘制子图264
12.1.3 添加注释266
12.1.4 其他的坐标轴类型268
12.2 应用Pyplot模块269
12.3 Artist模块275
12.3.1 Artist模块概述275
12.3.2 Artist的属性277
12.4 使用pandas绘图283
12.5 本章小结287
第3篇 Python数据分析案例实战
第13章 案例1:数据挖掘288
13.1 贝叶斯理论介绍288
13.2 贝叶斯分类器的实现290
13.3 协同过滤推荐系统295
13.3.1 相似度计算296
13.3.2 协同过滤推荐系统的实现300
13.4 本章小结304
第14章 案例2:玩转大数据305
14.1 案例概述306
14.1.1 了解大数据的处理方式306
14.1.2 处理日志文件307
14.1.3 案例目标308
14.2 日志文件的分割309
14.3 编写Map()函数处理小文件311
14.4 编写Reduce()函数313
14.5 本章小结315