Python实战之数据分析与处理
作者:刘宇宙
出版时间:2020年版
内容简介
本书是为使用Python进行科学计算的新手或刚入门者量身定做的,是作者学习和使用Python进行人工智能项目研发的体会与经验总结,涵盖了实际开发中的基础知识点,内容详尽,代码可读性及可操作性强。本书主要介绍NumPy、Pandas、Matplotlib的基本操作。本书使用通俗易懂的描述,引入了丰富的示例代码,同时结合智慧城市中的一些事件,使内容呈现尽可能生动有趣,让一些原本复杂的处理能够通过另一种辅助解释得以简单化,从而使读者充分感受学习的乐趣和魅力。本书可供有一定Python基础但没有NumPy、Pandas、Matplotlib操作经验的人员,有Python基础并且想进一步学习使用Python进行科学计算的人员,有一些Python基础并且打算入门人工智能的人员,以及培训机构、中学及大专院校的学生阅读。
目录
目 录
第一部分 数据分析与处理简介
第1章 数据分析与处理概述\t2
1.1 了解大数据\t2
1.2 数据分析与处理的需求\t4
1.3 数据分析与处理的发展前景\t5
第二部分 科学计算之门――NumPy
第2章 NumPy入门\t8
2.1 NumPy简介\t8
2.2 NumPy安装\t8
2.3 NumPy――ndarray对象\t9
2.4 NumPy数据类型\t11
2.4.1 数据类型\t11
2.4.2 数据类型对象(dtype)\t12
2.5 NumPy数组属性\t16
2.6 NumPy创建数组\t19
2.6.1 numpy.empty\t19
2.6.2 numpy.zeros\t19
2.6.3 numpy.ones\t20
2.6.4 numpy.asarray\t21
2.6.5 numpy.frombuffer\t22
2.6.6 numpy.fromiter\t23
2.6.7 numpy.arange\t23
2.6.8 numpy.linspace\t24
2.6.9 numpy.logspace\t26
2.7 NumPy切片和索引\t27
2.7.1 切片和索引\t27
2.7.2 整数数组索引\t29
2.7.3 布尔索引\t30
2.7.4 花式索引\t31
2.8 NumPy迭代数组\t32
2.9 NumPy数组操作\t37
2.9.1 修改数字形状\t37
2.9.2 翻转数组\t39
2.9.3 修改数组维度\t42
2.9.4 连接数组\t45
2.9.5 分割数组\t48
2.9.6 数组的添加与删除\t50
2.10 NumPy位运算\t55
2.10.1 bitwise_and()函数\t55
2.10.2 bitwise_or()函数\t55
2.10.3 invert()函数\t56
2.10.4 left_shift()函数\t56
2.10.5 right_shift()函数\t56
2.11 实战演练\t57
第3章 NumPy函数\t58
3.1 字符串函数\t58
3.1.1 numpy.char.add()函数\t58
3.1.2 numpy.char.multiply()函数\t59
3.1.3 numpy.char.center()函数\t59
3.1.4 numpy.char.capitalize()函数\t59
3.1.5 numpy.char.title()函数\t59
3.1.6 numpy.char.lower()函数\t60
3.1.7 numpy.char.upper()函数\t60
3.1.8 numpy.char.split()函数\t60
3.1.9 numpy.char.splitlines()函数\t61
3.1.10 numpy.char.strip()函数\t61
3.1.11 numpy.char.join()函数\t61
3.1.12 numpy.char.replace()函数\t62
3.1.13 numpy.char.encode()函数\t62
3.1.14 numpy.char.decode()函数\t62
3.2 数学函数\t62
3.2.1 三角函数\t62
3.2.2 舍入函数\t64
3.2.3 numpy.floor()函数\t65
3.2.4 numpy.ceil()函数\t65
3.3 算术函数\t65
?
3.4 统计函数\t67
3.4.1 numpy.amin()函数和numpy.amax()函数\t67
3.4.2 numpy.ptp()函数\t68
3.4.3 numpy.percentile()函数\t68
3.4.4 numpy.median()函数\t69
3.4.5 numpy.mean()函数\t70
3.4.6 numpy.average()函数\t70
3.4.7 标准差\t71
3.4.8 方差\t72
3.5 排序、搜索和计数函数\t72
3.5.1 numpy.sort()函数\t72
3.5.2 numpy.argsort()函数\t73
3.5.3 numpy.lexsort()函数\t74
3.5.4 numpy.argmax()函数和numpy.argmin()函数\t74
3.5.5 numpy.nonzero()函数\t75
3.5.6 numpy.where()函数\t76
3.5.7 numpy.extract()函数\t76
3.5.8 其他排序\t77
3.6 字节交换\t78
3.7 副本和视图\t79
3.7.1 无复制\t79
3.7.2 视图\t80
3.7.3 副本\t81
3.8 矩阵库\t82
3.9 线性代数\t85
3.10 NumPy IO\t90
3.11 实战演练\t93
第三部分 数据处理法宝――Pandas
第4章 Pandas入门\t96
4.1 Pandas简介\t96
4.2 Pandas安装及数据结构\t96
4.3 系列\t97
4.3.1 创建空系列\t98
4.3.2 由ndarray创建系列\t98
4.3.3 由字典创建系列\t99
4.3.4 使用标量创建系列\t99
4.3.5 从系列中访问数据\t100
4.3.6 使用标签检索数据\t101
4.4 数据帧\t101
4.4.1 创建空数据帧\t102
4.4.2 使用列表创建数据帧\t102
4.4.3 使用ndarrays/lists的字典创建数据帧\t103
4.4.4 使用字典列表创建数据帧\t104
4.4.5 使用系列的字典创建数据帧\t105
4.4.6 列选择\t105
4.4.7 列添加\t106
4.4.8 列删除\t106
4.4.9 行选择、添加和删除\t107
4.4.10 行切片\t108
4.5 面板\t109
4.5.1 面板创建\t110
4.5.2 数据选择\t110
4.6 基本功能\t111
4.6.1 T转置\t112
4.6.2 axes\t113
4.6.3 dtypes\t113
4.6.4 empty\t113
4.6.5 ndim\t114
4.6.6 shape\t114
4.6.7 size\t114
4.6.8 values\t115
4.6.9 head()方法与tail()方法\t115
4.7 描述性统计\t116
4.7.1 sum()函数\t116
4.7.2 mean()函数\t117
4.7.3 std()函数\t118
4.7.4 describe()函数\t118
4.8 函数应用\t120
4.8.1 表格函数\t120
4.8.2 行列合理函数\t121
4.8.3 元素合理函数\t122
4.9 重建索引\t123
4.9.1 重建对象对齐索引\t123
4.9.2 填充时重新加注\t124
4.9.3 重建索引时的填充限制\t124
4.9.4 重命名\t125
4.10 迭代\t126
4.11 排序\t127
4.11.1 按标签排序\t127
4.11.2 排序顺序\t128
4.11.3 按列排序\t129
4.11.4 按值排序\t129
4.11.5 排序算法\t129
4.12 字符串和文本数据\t130
4.12.1 lower()函数\t130
4.12.2 upper()函数\t130
4.12.3 len()函数\t131
4.12.4 strip()函数\t131
4.12.5 split()函数\t131
4.12.6 cat()函数\t132
4.12.7 get_dummies()函数\t132
4.12.8 contains()函数\t132
4.12.9 replace()函数\t133
4.12.10 repeat()函数\t133
4.12.11 count()函数\t133
4.12.12 startswith()函数\t133
4.12.13 endswith()函数\t134
4.12.14 find()函数\t134
4.12.15 findall()函数\t134
4.12.16 swapcase()函数\t135
4.12.17 islower()函数\t135
4.12.18 isupper()函数\t135
4.12.19 isnumeric()函数\t136
4.13 选项和自定义\t136
4.13.1 get_option()函数\t136
4.13.2 set_option()函数\t136
4.13.3 reset_option()函数\t137
4.13.4 describe_option()函数\t137
4.13.5 option_context()函数\t138
4.14 选择和索引数据\t138
4.14.1 .loc()\t138
4.14.2 .iloc()\t139
4.14.3 .ix()\t139
4.14.4 使用符号\t139
4.14.5 属性访问\t140
4.15 实战演练\t140
第5章 Pandas进阶\t141
5.1 统计函数\t141
5.1.1 pct_change()函数\t141
5.1.2 协方差\t142
5.1.3 相关性\t143
5.1.4 数据排名\t143
5.2 窗口函数\t144
5.2.1 .rolling()函数\t144
5.2.2 .expanding()函数\t145
5.2.3 .ewm()函数\t145
5.3 聚合\t145
5.3.1 在整个DataFrame上应用聚合\t146
5.3.2 在DataFrame的单列上应用聚合\t146
5.3.3 在DataFrame的多列上应用聚合\t147
5.3.4 在DataFrame的单列上应用多个函数\t147
5.3.5 在DataFrame的多列上应用多个函数\t148
5.3.6 将不同的函数应用于DataFrame的不同列\t148
5.4 缺失数据\t149
5.4.1 为什么会缺失数据\t149
5.4.2 检查缺失值\t149
5.4.3 缺失数据的计算\t150
5.4.4 缺失数据填充\t150
5.4.5 向前和向后填充\t150
5.4.6 清除缺失值\t151
5.4.7 值替换\t151
5.5 分组\t151
5.5.1 将数据拆分成组\t152
5.5.2 查看分组\t152
5.5.3 迭代遍历分组\t153
5.5.4 选择一个分组\t153
5.5.5 聚合\t154
5.5.6 使用多个聚合函数\t154
5.5.7 转换\t155
5.5.8 过滤\t155
5.6 合并/连接\t156
5.6.1 合并一个键上的两个数据帧\t157
5.6.2 合并多个键上的两个数据帧\t157
5.6.3 使用how参数\t158
5.7 级联\t159
5.7.1 concat()函数\t159
5.7.2 append()函数\t161
5.7.3 时间序列\t161
5.8 日期功能\t162
5.9 时间差\t164
5.10 分类数据\t165
5.11 稀疏数据\t169
5.12 实战演练\t170
第四部分 优雅的艺术――Matplotlib
第6章 Matplotlib 入门\t172
6.1 Matplotlib简介\t172
6.2 Matplotlib安装\t173
6.3 Pyplot教程\t173
6.3.1 控制线条属性\t176
6.3.2 处理多个图形和轴域\t177
6.3.3 处理文本\t178
6.3.4 在文本中使用数学表达式\t179
6.3.5 对数和其他非线性轴\t180
6.4 使用GridSpec自定义子图位置\t181
6.4.1 subplot2grid\t181
6.4.2 GridSpec和SubplotSpec\t182
6.4.3 调整GridSpec布局\t183
6.4.4 使用SubplotSpec创建GridSpec\t184
6.4.5 调整GridSpec布局\t185
6.5 布局\t186
6.5.1 简单示例\t186
6.5.2 和GridSpec一起使用\t190
6.5.3 和AxesGrid1一起使用\t193
6.5.4 颜色条\t194
6.6 艺术家教程\t195
6.6.1 自定义对象\t196
6.6.2 图形容器\t197
6.6.3 轴域容器\t197
6.6.4 轴容器(Axis)\t199
6.6.5 刻度容器\t201
6.7 图例指南\t202
6.7.1 控制图例条目\t202
6.7.2 代理艺术家\t203
6.7.3 图例位置\t204
6.7.4 同轴域的多个图例\t204
6.7.5 图例处理器\t205
6.7.6 自定义图例处理器\t206
6.8 变换\t208
6.8.1 数据坐标\t208
6.8.2 混合变换\t209
6.8.3 创建阴影效果\t210
6.9 路径\t212
6.9.1 贝塞尔示例\t213
6.9.2 复合路径\t214
6.9.3 路径效果\t216
6.9.4 添加阴影\t217
6.9.5 其他\t218
第7章 Matplotlib更多处理\t220
7.1 基本文本命令\t220
7.2 文本属性及布局\t222
7.3 标注\t225
7.3.1 基本标注\t225
7.3.2 使用框和文本标注\t227
7.3.3 使用箭头标注\t228
7.4 数学表达式\t231
7.5 颜色指定\t235
7.6 事件处理及拾取\t236
7.6.1 事件连接\t236
7.6.2 事件属性\t237
7.6.3 可拖曳的矩形\t239
7.6.4 鼠标进入和离开\t242
7.6.5 对象拾取\t244
7.7 扩展\t246
7.7.1 透明度填充\t246
7.7.2 透明、花式图例\t247
7.7.3 放置文本框\t248
第五部分 项目实战
第8章 数据加载与数据库操作\t252
8.1 读写文本格式的数据\t252
8.2 逐块读取文本文件\t256
8.3 数据写入文本\t258
8.4 JSON数据处理\t260
8.5 二进制数据格式\t262
8.6 HDF5数据格式\t262
8.7 Pandas操作数据库\t265
第9章 数据分析\t273
9.1 数据准备\t273
9.2 数据处理\t279
9.3 数据可视化\t291
附录A 可用Line2D属性\t294
附录B 习题参考答案\t295