本书首先介绍Python和Jupyter笔记本的基础知识,然后逐一介绍丰富的、与数据科学相关的Python库,并举例说明如何在实际工作中运用Python。本书将Python和数据科学融合起来,帮助读者快速入门Python并使用Python完成数据分析相关任务,是实用的快速上手教程。书中代码使用与Jupyter笔记本兼容的Colab创建,方便读者配置和使用。
本书适合希望在工作中使用Python的读者阅读,也适合想要利用数据科学原理完成各类项目的读者参考。
数据科学和机器学习领域经常使用Python。如果你对这两个领域特别感兴趣,却又不太清楚如何有针对性地学习Python,那么本书可以为你提供一些帮助。
本书作者经验丰富,能够量体裁衣,为你提供指导。
从Python编程快速过渡到利用Python完成数据分析;面向各行各业的从业人员和各专业的学生。
肯尼迪·贝尔曼是一位经验丰富的软件工程师。他最初使用Python管理影视特效方面的数字资产,后来更广泛地应用Python。他撰写了许多关于Python教育的书籍,还发起了很多相关培训项目。目前他是Envestnet的高级数据工程师。
第Ⅰ部分 在笔记本环境中学习Python
第 1章 笔记本简介 3
1.1 运行Python语句 3
1.2 Jupyter笔记本 4
1.3 Google Colab 4
1.3.1 Colab文本单元 5
1.3.2 LaTeX 7
1.3.3 Colab代码单元 7
1.3.4 Colab文件 7
1.3.5 管理Colab文档 8
1.3.6 Colab代码片段 8
1.3.7 现有资料集 8
1.3.8 系统别名 8
1.3.9 魔法函数 9
1.4 本章小结 9
1.5 问题 9
第 2章 Python基础 10
2.1 Python的基本类型 10
2.1.1 高级语言与低级语言 11
2.1.2 语句 12
2.2 执行基础数学运算 17
2.3 用点号访问类和对象 18
2.4 本章小结 18
2.5 问题 18
第3章 序列 19
3.1 通用的操作 19
3.1.1 检测成员关系 19
3.1.2 索引 20
3.1.3 切片 20
3.1.4 查看信息 21
3.1.5 数学运算 22
3.2 列表和元组 22
3.2.1 创建列表和元组 22
3.2.2 添加和删除列表元素 23
3.2.3 拆包 25
3.2.4 列表排序 25
3.3 字符串 26
3.4 range对象 27
3.5 本章小结 28
3.6 问题 28
第4章 其他数据结构 29
4.1 字典 29
4.1.1 创建字典 29
4.1.2 利用键访问、追加、更新
字典 30
4.1.3 从字典中移除项目 31
4.1.4 字典视图 32
4.1.5 判断字典是否包含某个键 34
4.1.6 get方法 34
4.1.7 合法的键类型 35
4.1.8 哈希方法 36
4.2 集合 37
4.2.1 集合的运算 39
4.2.2 原封集合 43
4.3 本章小结 44
4.4 问题 44
第5章 执行控制 45
5.1 复合语句 45
5.1.1 复合语句的结构 45
5.1.2 判断True与False 46
5.2 if语句 49
5.3 while循环 52
5.4 for循环 52
5.5 break和continue语句 53
5.6 本章小结 54
5.7 问题 54
第6章 函数 55
6.1 定义函数 55
6.1.1 控制语句 55
6.1.2 文档字符串 56
6.1.3 参数 57
6.1.4 返回语句 62
6.2 函数的作用域 63
6.3 装饰器 63
6.4 匿名函数 67
6.5 本章小结 68
6.6 问题 68
第Ⅱ部分 数据科学库
第7章 NumPy 73
7.1 安装并引入NumPy 73
7.2 创建数组 74
7.3 索引与切片 77
7.4 逐元素运算 78
7.5 过滤值 80
7.6 视图与拷贝 81
7.7 数组的一些方法 83
7.8 广播 86
7.9 NumPy代数 88
7.10 本章小结 89
7.11 问题 89
第8章 SciPy 90
8.1 SciPy简介 90
8.2 scipy.misc子模块 90
8.3 scipy.special子模块 91
8.4 scipy.stats子模块 92
8.4.1 离散分布 92
8.4.2 连续分布 95
8.5 本章小结 98
8.6 问题 98
第9章 pandas 99
9.1 关于数据框 99
9.2 创建数据框 99
9.2.1 通过字典创建数据框 100
9.2.2 根据列表的列表创建数据框 101
9.2.3 利用文件创建数据框 102
9.3 与数据框中的数据交互 102
9.3.1 首尾 103
9.3.2 描述统计学 104
9.3.3 访问数据 105
9.3.4 方括号语法 106
9.3.5 利用标签优化数据访问 108
9.3.6 利用索引优化数据访问 109
9.3.7 遮罩与过滤 110
9.3.8 pandas布尔运算 111
9.4 操纵数据框 112
9.5 操纵数据 114
9.6 交互式显示 117
9.7 本章小结 117
9.8 问题 117
第 10章 可视化库 119
10.1 Matplotlib 119
10.1.1 调整样式 120
10.1.2 带标签的数据 123
10.1.3 绘制多组数据 124
10.1.4 面向对象的样式 125
10.2 seaborn 127
10.3 Plotly 130
10.4 Bokeh 131
10.5 其他可视化库 132
10.6 本章小结 133
10.7 问题 133
第 11章 机器学习库 134
11.1 常用机器学习库 134
11.2 机器学习如何工作 134
11.2.1 转换 135
11.2.2 划分测试与训练数据 136
11.2.3 训练与测试 137
11.3 进一步学习scikit-learn 137
11.4 本章小结 137
11.5 问题 138
第 12章 自然语言工具箱 139
12.1 NLTK示例文本 139
12.2 频度分布 141
12.3 文本对象 144
12.4 文本分类 146
12.5 本章小结 148
12.6 习题 149
第Ⅲ部分 Python中级知识
第 13章 函数式编程 153
13.1 函数式编程简介 153
13.1.1 作用域与状态 153
13.1.2 依赖全局状态 154
13.1.3 改变状态 155
13.1.4 修改可变数据 156
13.1.5 函数式编程中的函数 157
13.2 列表推导式 159
13.2.1 列表推导式的基本语法 159
13.2.2 替代map和filter 159
13.2.3 多变量 160
13.2.4 字典推导式 161
13.3 生成器 161
13.3.1 生成器表达式 161
13.3.2 生成器函数 162
13.4 本章小结 164
13.5 问题 164
第 14章 面向对象编程 165
14.1 将状态与函数编组 165
14.1.1 类与实例 165
14.1.2 私有方法和变量 167
14.1.3 类变量 168
14.2 特殊方法 168
14.2.1 表示方法 169
14.2.2 富比较方法 170
14.2.3 数学运算方法 173
14.3 继承 174
14.4 本章小结 177
14.5 问题 177
第 15章 其他主题 178
15.1 排序 178
15.2 读写文件 181
15.3 datetime对象 182
15.4 正则表达式 184
15.4.1 字符集 185
15.4.2 字符类 185
15.4.3 分组 186
15.4.4 带名分组 186
15.4.5 搜索所有匹配 187
15.4.6 搜索迭代器 187
15.4.7 替换 187
15.4.8 使用带名分组替换 187
15.4.9 编译正则表达式 188
15.5 本章小结 189
15.6 问题 189
附录A 章末问题答案 190
附录B 图片版权 195