- ISBN:9787115662668
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:484
- 出版时间:2025-02-01
- 条形码:9787115662668 ; 978-7-115-66266-8
本书特色
1.【经典】热销经典新升级,上一版豆瓣评分 9.2,Amazon 4.6 星评
2.【热门】基于数据分析与数据科学超流行开源项目( GitHub 43.9k )
3.【全面】一书掌握Python四大库:NumPy pandas Matplotlib scikit-learn
NumPy(大规模数值数据) pandas(数据处理和分析) Matplotlib(数据可视化) scikit-learn(机器学习)
4.【实操】附赠所有示例和彩图的源代码,Jupyter Notebook一键运行
内容简介
本书为数据科学领域经典热销书升级版,基于GitHub热门开源项目,全面涵盖数据分析与数据科学领域的重要工具。全书共分为五部分,每部分介绍一两个Python数据科学中的重点工具包。首先从IPython和Jupyter开始,它们提供了数据科学家需要的计算环境;第二部分讲解NumPy如何高效地存储和操作大型数组;第三部分讲解pandas如何高效地存储和操作带标签的列式数据;第四部分聚焦Matplotlib,展示其丰富的数据可视化功能;第五部分以scikit-learn为主,这个程序库为*重要的机器学习算法提供了高效整洁的Python版实现。本书适合有一定Python使用经验,并想进一步掌握Python数据分析能力的读者。
目录
目录
对本书的赞誉 xv
译者序 xvii
前言 xix
第 一部分 Jupyter:超越Python
第 1章 IPython和Jupyter入门 3
1.1 启动IPython shell 3
1.2 启动Jupyter Notebook 3
1.3 IPython的帮助和文档 4
1.3.1 用符号 获取文档 5
1.3.2 用符号 获取源代码 6
1.3.3 用Tab补全的方式探索模块 6
1.4 IPython shell中的快捷键 8
1.4.1 导航快捷键 8
1.4.2 文本输入快捷键 9
1.4.3 命令历史快捷键 9
1.4.4 其他快捷键 10
第 2章 增强的交互功能 11
2.1 IPython魔法命令 11
2.1.1 执行外部代码:%run 11
2.1.2 计算代码运行时间:%timeit 12
2.1.3 魔法函数的帮助: 、%magic和%lsmagic 12
2.2 输入和输出历史 13
2.2.1 IPython的输入和输出对象 13
2.2.2 下划线快捷键和以前的输出 14
2.2.3 禁止输出 14
2.2.4 相关的魔法命令 15
2.3 IPython和shell命令 15
2.3.1 shell快速入门 15
2.3.2 IPython中的shell命令 16
2.3.3 在shell中传入或传出值 16
2.3.4 与shell相关的魔法命令 17
第3章 调试及性能分析 19
3.1 错误和调试 19
3.1.1 控制异常:%xmode 19
3.1.2 调试:当阅读轨迹追溯不足以解决问题时 21
3.2 代码性能与耗时分析 23
3.2.1 代码段计时:%timeit和%time 23
3.2.2 对整个脚本进行性能分析:%prun 24
3.2.3 用%lprun进行逐行性能分析 25
3.2.4 用%memit和%mprun进行内存分析 26
3.3 IPython参考资料 27
3.3.1 网络资源 27
3.3.2 相关图书 28
第二部分 NumPy入门
第4章 理解Python中的数据类型 31
4.1 Python整型不仅仅是一个整型 32
4.2 Python列表不仅仅是一个列表 33
4.3 Python中的固定类型数组 35
4.4 从Python列表创建数组 35
4.5 从头创建数组 36
4.6 NumPy标准数据类型 37
第5章 NumPy数组基础 38
5.1 NumPy数组的属性 38
5.2 数组索引:获取单个元素 39
5.3 数组切片:获取子数组 40
5.3.1 一维子数组 40
5.3.2 多维子数组 41
5.3.3 非副本视图的子数组 41
5.3.4 创建数组的副本 42
5.4 数组的变形 42
5.5 数组拼接和拆分 43
5.5.1 数组的拼接 43
5.5.2 数组的拆分 44
第6章 NumPy数组的计算:通用函数 46
6.1 缓慢的循环 46
6.2 通用函数介绍 47
6.3 探索NumPy的通用函数 48
6.3.1 数组的运算 48
6.3.2 绝对值 49
6.3.3 三角函数 49
6.3.4 指数和对数 50
6.3.5 专业的通用函数 51
6.4 高级的通用函数特性 51
6.4.1 指定输出 51
6.4.2 聚合 52
6.4.3 外积 52
6.5 通用函数:更多的信息 53
第7章 聚合:*小值、*大值和其他值 54
7.1 数组值求和 54
7.2 *小值和*大值 55
7.2.1 多维度聚合 55
7.2.2 其他聚合函数 56
7.3 示例:美国总统的平均身高是多少 56
第8章 数组的计算:广播 59
8.1 广播的介绍 59
8.2 广播的规则 61
8.2.1 广播示例1 61
8.2.2 广播示例2 62
8.2.3 广播示例3 62
8.3 广播的实际应用 63
8.3.1 数组的归一化 63
8.3.2 画一个二维函数 64
第9章 比较、掩码和布尔逻辑 65
9.1 示例:统计下雨天数 65
9.2 将比较运算符看作通用函数 66
9.3 操作布尔数组 67
9.3.1 统计记录的个数 68
9.3.2 布尔运算符 69
9.4 将布尔数组作为掩码 70
9.5 使用关键字and/or与逻辑操作运算符&/| 70
第 10章 花式索引 73
10.1 探索花式索引 73
10.2 组合索引 74
10.3 示例:选择随机点 75
10.4 用花式索引修改值 76
10.5 示例:数据区间划分 77
第 11章 数组排序 80
11.1 NumPy中的快速排序:np.sort和np.argsort 81
11.2 沿着行或列排序 81
11.3 部分排序:分区 82
11.4 示例:k个*近邻 82
第 12章 结构化数据:NumPy的结构化数组 86
12.1 生成结构化数组 87
12.2 更高级的复合数据类型 88
12.3 记录数组:结构化数组的扭转 89
12.4 关于pandas 89
第三部分 pandas数据处理
第 13章 pandas对象简介 93
13.1 pandas的Series对象 93
13.1.1 Serise是通用的NumPy数组 94
13.1.2 Series是特殊的字典 95
13.1.3 创建Series对象 95
13.2 pandas的DataFrame对象 96
13.2.1 DataFrame是通用的NumPy数组 96
13.2.2 DataFrame是特殊的字典 97
13.2.3 创建DataFrame对象 97
13.3 pandas的Index对象 99
13.3.1 将Index看作不可变数组 99
13.3.2 将Index看作有序集合 99
第 14章 数据取值与选择 101
14.1 Series数据选择方法 101
14.1.1 将Series看作字典 101
14.1.2 将Series看作一维数组 102
14.1.3 索引器:loc和iloc 103
14.2 DataFrame数据选择方法 104
14.2.1 将DataFrame看作字典 104
14.2.2 将DataFrame看作二维数组 105
14.2.3 其他取值方法 107
第 15章 pandas数值运算方法 108
15.1 通用函数:保留索引 108
15.2 通用函数:索引对齐 109
15.2.1 Series索引对齐 109
15.2.2 DataFrame索引对齐 110
15.3 通用函数:DataFrame与Series的运算 111
第 16章 处理缺失值 113
16.1 处理缺失值的方法选择 113
16.2 pandas的缺失值 114
16.2.1 None作为哨兵值 114
16.2.2 NaN:数值类型的缺失值 115
16.2.3 pandas中NaN与None的差异 115
16.3 pandas可空类型 116
16.4 处理缺失值 117
16.4.1 发现缺失值 117
16.4.2 剔除缺失值 117
16.4.3 填充缺失值 119
第 17章 分层索引 121
17.1 多级索引Series 121
17.1.1 笨办法 121
17.1.2 好办法:pandas多级索引 122
17.1.3 高维数据的多级索引 123
17.2 多级索引的创建方法 124
17.2.1 显式地创建多级索引 125
17.2.2 多级索引的级别名称 125
17.2.3 多级列索引 126
17.3 多级索引的取值与切片 127
17.3.1 Series多级索引 127
17.3.2 DataFrame多级索引 128
17.4 多级索引行列转换 129
17.4.1 有序的索引和无序的索引 129
17.4.2 索引stack与unstack 130
17.4.3 索引的设置与重置 131
第 18章 合并数据集:concat与append操作 132
18.1 知识回顾:NumPy数组的合并 133
18.2 通过pd.concat实现简单合并 133
18.2.1 索引重复 134
18.2.2 类似join的合并 135
18.2.3 append方法 136
第 19章 合并数据集:合并与连接 137
19.1 关系代数 137
19.2 数据连接的类型 138
19.2.1 一对一连接 138
19.2.2 多对一连接 139
19.2.3 多对多连接 139
19.3 设置数据合并的键 140
19.3.1 参数on的用法 140
19.3.2 left_on与right_on参数 140
19.3.3 left_index与right_index参数 141
19.4 设置数据连接的集合操作规则 142
19.5 重复列名:suffixes参数 143
19.6 案例:美国各州的统计数据 144
第 20章 聚合与分组 149
20.1 行星数据 149
20.2 pandas的简单聚合功能 150
20.3 groupby:分割、应用和组合 152
20.3.1 分割、应用和组合 152
20.3.2 GroupBy对象 153
20.3.3 聚合、过滤、转换和应用 155
20.3.4 设置分割的键 157
第 21章 数据透视表 160
21.1 演示数据透视表 160
21.2 手工制作数据透视表 161
21.3 数据透视表语法 161
21.3.1 多级数据透视表 162
21.3.2 其他数据透视表选项 162
21.4 案例:美国人的生日 163
第 22章 向量化字符串操作 168
22.1 pandas字符串操作简介 168
22.2 pandas字符串方法列表 169
22.2.1 与Python字符串方法相似的方法 169
22.2.2 使用正则表达式的方法 170
22.2.3 其他字符串方法 171
22.3 案例:食谱数据库 173
22.3.1 制作简单的美食推荐系统 174
22.3.2 继续完善美食推荐系统 175
第 23章 处理时间序列 176
23.1 Python的日期与时间工具 176
23.1.1 Python的原生日期与时间工具:datetime与dateutil 177
23.1.2 时间类型数组:NumPy的datetime64类型 177
23.1.3 pandas的日期与时间工具:理想与现实的*佳解决方案 179
23.2 pandas时间序列:用时间作索引 179
23.3 pandas时间序列数据结构 180
23.4 有规律的时间序列:pd.date_range 181
23.5 时间频率与偏移量 182
23.6 重采样、移位和窗口 183
23.6.1 重采样与频率转换 184
23.6.2 时间移位 186
23.6.3 滚动窗口 186
23.7 案例:美国西雅图自行车统计数据的可视化 188
23.7.1 数据可视化 189
23.7.2 深入挖掘数据 191
第 24章 高性能pandas:eval与query 194
24.1 query与eval的设计动机:复合表达式 194
24.2 用pandas.eval实现高性能运算 195
24.3 用DataFrame.eval实现列间运算 196
24.3.1 用DataFrame.eval新增列 197
24.3.2 DataFrame.eval使用局部变量 198
24.4 DataFrame.query方法 198
24.5 性能决定使用时机 199
24.6 参考资料 199
第四部分 Matplotlib数据可视化
第 25章 Matplotlib常用技巧 203
25.1 导入Matplotlib 203
25.2 设置绘图样式 203
25.3 用不用show?如何显示图形 203
25.3.1 在脚本中画图 204
25.3.2 在IPython shell中画图 204
25.3.3 在Jupyter Notebook中画图 204
25.3.4 将图形保存为文件 205
25.3.5 两种画图接口 206
第 26章 简单线形图 209
26.1 调整图形:线条的颜色与风格 212
26.2 调整图形:坐标轴上下限 214
26.3 设置图形标签 216
26.4 Matplotlib陷阱 218
第 27章 简单散点图 219
27.1 用plt.plot画散点图 219
27.2 用plt.scatter画散点图 222
27.3 plot与scatter:效率对比 224
27.4 可视化误差 224
27.4.1 基本误差线 225
27.4.2 连续误差 226
第 28章 密度图与等高线图 228
28.1 三维函数的可视化 228
28.2 频次直方图、数据区间划分和分布密度 232
28.3 二维频次直方图与数据区间划分 234
28.3.1 plt.hist2d:二维频次直方图 235
28.3.2 plt.hexbin:六边形区间划分 235
28.3.3 核密度估计 236
第 29章 配置图例 238
29.1 选择图例显示的元素 241
29.2 在图例中显示不同尺寸的点 242
29.3 同时显示多个图例 243
第30章 配置颜色条 245
30.1 配置颜色条 246
30.1.1 选择配色方案 247
30.1.2 颜色条刻度的限制与扩展功能的设置 249
30.1.3 离散型颜色条 250
30.2 案例:手写数字 250
第31章 多子图 253
31.1 plt.axes:手动创建子图 253
31.2 plt.subplot:简单网格子图 255
31.3 plt.subplots:用一行代码创建网格 256
31.4 plt.GridSpec:实现更复杂的排列方式 257
第32章 文字与注释 260
32.1 案例:节假日对美国出生率的影响 260
32.2 坐标变换与文字位置 262
32.3 箭头与注释 264
第33章 自定义坐标轴刻度 267
33.1 主要刻度与次要刻度 267
33.2 隐藏刻度与标签 268
33.3 增减刻度数量 270
33.4 花哨的刻度格式 272
33.5 格式生成器与定位器小结 274
第34章 Matplotlib自定义:配置文件与样式表 276
34.1 手动配置图形 276
34.2 修改默认配置:rcParams 278
34.3 样式表 280
34.3.1 默认风格 280
34.3.2 FiveThirtyEight风格 281
34.3.3 ggplot风格 281
34.3.4 bmh风格 282
34.3.5 黑色背景风格 282
34.3.6 灰度风格 283
34.3.7 Seaborn风格 283
第35章 用Matplotlib画三维图 285
35.1 三维数据点与线 286
35.2 三维等高线图 287
35.3 线框图和曲面图 289
35.4 曲面三角剖分 291
35.5 案例:默比乌斯带 292
第36章 用Seaborn做数据可视化 294
36.1 Seaborn图形介绍 295
36.1.1 频次直方图、KDE和密度图 295
36.1.2 成对图 297
36.1.3 分面频次直方图 298
36.2 分类图 299
36.2.1 联合分布 300
36.2.2 条形图 301
36.3 案例:探索马拉松比赛成绩数据 302
36.4 参考资料 309
36.5 其他Python画图程序库 310
第五部分 机器学习
第37章 什么是机器学习 313
37.1 机器学习的分类 313
37.2 机器学习应用的定性示例 314
37.2.1 分类:预测离散标签 314
37.2.2 回归:预测连续标签 316
37.2.3 聚类:为无标签数据添加标签 318
37.2.4 降维:推断无标签数据的结构 320
37.3 小结 321
第38章 scikit-learn简介 322
38.1 scikit-learn的数据表示 322
38.1.1 特征矩阵 323
38.1.2 目标数组 323
38.2 scikit-learn的估计器API 325
38.2.1 API基础知识 326
38.2.2 监督学习示例:简单线性回归 326
38.2.3 监督学习示例:鸢尾花数据分类 329
38.2.4 无监督学习示例:鸢尾花数据降维 330
38.2.5 无监督学习示例:鸢尾花数据聚类 331
38.3 应用:手写数字探索 332
38.3.1 加载并可视化手写数字 332
38.3.2 无监督学习:降维 333
38.3.3 数字分类 334
38.4 小结 337
第39章 超参数与模型验证 338
39.1 模型验证 338
39.1.1 错误的模型验证方法 338
39.1.2 正确的模型验证方法:留出集 339
39.1.3 交叉验证 339
39.2 选择*优模型 341
39.2.1 偏差与方差的均衡 342
39.2.2 scikit-learn验证曲线 343
39.3 学习曲线 347
39.4 验证实践:网格搜索 350
39.5 小结 351
第40章 特征工程 352
40.1 分类特征 352
40.2 文本特征 353
40.3 图像特征 354
40.4 衍生特征 355
40.5 缺失值插补 357
40.6 特征管道 358
第41章 专题:朴素贝叶斯分类 359
41.1 贝叶斯分类 359
41.2 高斯朴素贝叶斯 360
41.3 多项式朴素贝叶斯 362
41.4 朴素贝叶斯的应用场景 365
第42章 专题:线性回归 367
42.1 简单线性回归 367
42.2 基函数回归 370
42.2.1 多项式基函数 370
42.2.2 高斯基函数 371
42.3 正则化 373
42.3.1 岭回归(L2范数正则化) 375
42.3.2 Lasso回归(L1范数正则化) 376
42.4 案例:预测自行车流量 377
第43章 专题:支持向量机 382
43.1 支持向量机的由来 382
43.2 支持向量机:间隔*大化 384
43.2.1 拟合支持向量机 385
43.2.2 超越线性边界:核函数SVM模型 387
43.2.3 SVM优化:软化间隔 390
43.3 案例:人脸识别 391
43.4 小结 395
第44章 专题:决策树与随机森林 397
44.1 随机森林的基础:决策树 397
44.1.1 创建一棵决策树 398
44.1.2 决策树与过拟合 400
44.2 估计器集成算法:随机森林 401
44.3 随机森林回归 403
44.4 案例:用随机森林识别手写数字 404
44.5 小结 407
第45章 专题:主成分分析 408
45.1 PCA简介 408
45.1.1 用PCA降维 411
45.1.2 用PCA做数据可视化:手写数字 412
45.1.3 成分的含义 413
45.1.4 选择成分的数量 414
45.2 用PCA做噪声过滤 415
45.3 案例:特征脸 417
45.4 小结 419
第46章 专题:流形学习 420
46.1 流形学习:“HELLO” 420
46.1.1 多维标度法(MDS) 422
46.1.2 将MDS用于流形学习 424
46.2 非线性嵌入:当MDS失败时 426
46.3 非线性流形:局部线性嵌入 427
46.4 关于流形方法的一些思考 429
46.5 示例:用Isomap处理人脸数据 430
46.6 示例:手写数字的可视化结构 433
第47章 专题:k-means聚类 437
47.1 k-means简介 437
47.2 k-means算法:期望*大化 439
47.3 案例 444
47.3.1 案例1:用k-means算法处理手写数字 444
47.3.2 案例2:将k-means用于色彩压缩 447
第48章 专题:高斯混合模型 451
48.1 高斯混合模型诞生的原因:k-means算法的缺陷 451
48.2 广义E-M:高斯混合模型 454
48.3 选择协方差的类型 458
48.4 将GMM用作密度估计器 458
48.5 示例:用GMM生成新的数据 462
第49章 专题:核密度估计 465
49.1 KDE的由来:直方图 465
49.2 核密度估计的实际应用 469
49.3 通过交叉验证选择带宽 470
49.4 示例:不是很朴素的贝叶斯 471
49.4.1 解析自定义估计器 472
49.4.2 使用自定义估计器 474
第50章 应用:人脸识别管道 476
50.1 HOG特征 476
50.2 HOG实战:一个简单的人脸识别器 477
50.2.1 获取一组正训练样本 478
50.2.2 获取一组负训练样本 478
50.2.3 组合数据集并提取HOG特征 479
50.2.4 训练一个支持向量机 479
50.2.5 在新图像中寻找人脸 480
50.3 注意事项与改进方案 482
50.4 机器学习参考资料 483
目录
对本书的赞誉 xv
译者序 xvii
前言 xix
第 一部分 Jupyter:超越Python
第 1章 IPython和Jupyter入门 3
第 2章 增强的交互功能 11
第3章 调试及性能分析 19
第二部分 NumPy入门
第4章 理解Python中的数据类型 31
第5章 NumPy数组基础 38
第6章 NumPy数组的计算:通用函数 46
第7章 聚合:*小值、*大值和其他值 54
第8章 数组的计算:广播 59
第9章 比较、掩码和布尔逻辑 65
第 10章 花式索引 73
第 11章 数组排序 80
第 12章 结构化数据:NumPy的结构化数组 86
第三部分 pandas数据处理
第 13章 pandas对象简介 93
第 14章 数据取值与选择 101
第 15章 pandas数值运算方法 108
第 16章 处理缺失值 113
第 17章 分层索引 121
第 18章 合并数据集:concat与append操作 132
第 19章 合并数据集:合并与连接 137
第 20章 聚合与分组 149
第 21章 数据透视表 160
第 22章 向量化字符串操作 168
第 23章 处理时间序列 176
第 24章 高性能pandas:eval与query 194
第四部分 Matplotlib数据可视化
第 25章 Matplotlib常用技巧 203
第 26章 简单线形图 209
第 27章 简单散点图 219
第 28章 密度图与等高线图 228
第 29章 配置图例 238
第30章 配置颜色条 245
第31章 多子图 253
第32章 文字与注释 260
第33章 自定义坐标轴刻度 267
第34章 Matplotlib自定义:配置文件与样式表 276
第35章 用Matplotlib画三维图 285
第36章 用Seaborn做数据可视化 294
第五部分 机器学习
第37章 什么是机器学习 313
第38章 scikit-learn简介 322
第39章 超参数与模型验证 338
第40章 特征工程 352
第41章 专题:朴素贝叶斯分类 359
第42章 专题:线性回归 367
第43章 专题:支持向量机 382
第44章 专题:决策树与随机森林 397
第45章 专题:主成分分析 408
第46章 专题:流形学习 420
第47章 专题:k-means聚类 437
第48章 专题:高斯混合模型 451
第49章 专题:核密度估计 465
第50章 应用:人脸识别管道 476
相关资料
市面上数据科学主题的图书很多,但Jake VanderPlas的作品无出其右者。 他对这个广泛且复杂的主题进行了巧妙的简化,通过精彩的论述和示例让读者轻松掌握关键概念。 ——Celeste Stinger,站点可靠性工程师Jake VanderPlas不仅业务专精,而且善于分享。这本书中清晰、 易懂的示例,可以帮助读者轻松创建并使用数据科学和机器学习的关键工具。如果你想深入了解如何利用基于Python的工具从数据中提取真知灼见,那么这本书正适合你!
作者简介
Jake VanderPlas 谷歌公司软件工程师,scikit-learn核心团队成员,SciPy项目维护者,Matplotlib和Pandas等热门项目的贡献者,因其长期致力于创建、开发和维护开源Python工具而在数据科学社区享有盛誉,拥有美国华盛顿大学博士学位,曾任华盛顿大学eScience学院物理科学研究院院长。
-
化工自动化及仪表(王银锁)
¥35.9¥49.9 -
脊柱伤病1000个为什么青少年脊柱侧弯64个为什么
¥16.0¥25.0 -
大学体育与健康专著陈鑫林主编daxuetiyuyujiankang
¥22.6¥36.0 -
转型中国的家庭代际关系:基于三代家庭的研究
¥50.5¥66.0 -
中国肿瘤整合诊治指南:头颈肿瘤 2022
¥18.1¥35.0 -
智慧妈妈的两个孩子养育课
¥29.4¥58.0 -
英语.专项训练-题海两万里
¥12.5¥29.0 -
股市投资:基本面分析的60个财务指标实战与应用
¥51.2¥88.0 -
中国文化精灵城堡漫游记中国文化精灵城堡漫游记(第1辑)
¥50.2¥89.4 -
区域发展中的财政与金融政策工具
¥26.5¥75.0
-
2025读书月阅读盲盒——我独钟意命运角落的人
¥42.3¥168.0 -
2025读书月阅读盲盒——经常作案的朋友都知道
¥42.3¥168.0 -
2025读书月阅读盲盒——你以为你以为的就是你以为的吗?
¥42.3¥168.0 -
生死场
¥8.6¥36.0 -
阅读是一座随身携带的避难所
¥15.8¥39.0 -
莫言的奇奇怪怪故事集
¥22.2¥59.9 -
女性生存战争
¥24.4¥66.0 -
林徽因讲建筑
¥11.9¥29.0 -
东京梦华录
¥19.9¥46.0 -
1984-插图珍藏版
¥11.3¥29.8 -
悉达多
¥14.3¥28.0 -
给青年的十二封信
¥6.3¥15.0 -
我从未如此眷恋人间
¥16.9¥49.8 -
她们
¥17.3¥46.8 -
告白
¥14.0¥36.8 -
我的心曾悲伤七次
¥9.0¥25.0 -
茶,汤和好天气
¥10.1¥28.0 -
大宋宰相王安石
¥18.6¥55.0 -
中国近代史
¥15.5¥39.8 -
得半日之闲,抵十年尘梦
¥10.1¥28.0