img
share 分享

Python数据科学手册

作者:[美]杰克·万托布拉斯

出版社:北京图灵文化发展有限公司

ISBN:9787115475893

VIP会员免费 (仅需0.8元/天) ¥ 54.99

温馨提示: 价值40000元的1000本电子书,VIP会员随意看哦!

电子书推荐

更多资源 展开

python数据科学手册(高清+标签+原版PDF) 评分:

本 书 主 要 介 绍 了 Python 在 数 据 科 学 领 域 的 基 础 工 具, 包 括 IPython、Jupyter、NumPy、Pandas、Matplotlib 和 Scikit-Learn。 当 然, 数 据 科 学 并 非 Python 一 家 之“ 言 ”,Scala、Java、R、Julia 等编程语言在此领域都有各自不同的工具。至于要不要学 Python,我们认为没必要纠结,秉承李小龙的武术哲学即可——Absorb what is useful, discard what is not,and add what is uniquely your own(取其精华,去其糟粕,再加点自己的独创)。Python 的 语法简洁直观、易学易用,是表现力最强的编程语言,学会它就可以让计算机跟随思想,快速完成许多有趣的事情。同时,它也是备受欢迎的胶水语言,许多由 Java、C/C++ 语言开发的工具都会提供 Python 接口,如 Spark、H2O、TensorFlow 等。2017 年 3 月 6 日,PyPI(https://pypi.python.org/pypi) 网站上的程序包数量就已经达到 10 万,新的程序包还在不断地涌现,数据科学目前是 Python 星球最酷炫的风景之一。如果数据科学问题让你心有挂碍,那么 Python 这根数据科学的蛇杖(Asklēpiós,阿斯克勒庇俄斯之杖,医神手杖, 医院的徽章)可以为你指点迷津。 译者序 ...................................................................................................................................................xiii 前言 ......................................................................................................................................................... xv 第 1 章 IPython : 超越 Python ...................................................................................................... 1 1.1 shell 还是 Notebook .................................................................................................................... 1 1.1.1 启动 IPython shell .......................................................................................................... 2 1.1.2 启动 Jupyter Notebook ................................................................................................... 2 1.2 IPython 的帮助和文档 ............................................................................................................... 3 1.2.1 用符号 ? 获取文档 ........................................................................................................ 3 1.2.2 通过符号 ?? 获取源代码 ............................................................................................... 4 1.2.3 用 Tab 补全的方式探索模块 ........................................................................................ 5 1.3 IPython shell 中的快捷键 ........................................................................................................... 7 1.3.1 导航快捷键 .................................................................................................................... 7 1.3.2 文本输入快捷键 ............................................................................................................ 7 1.3.3 命令历史快捷键 ............................................................................................................ 8 1.3.4 其他快捷键 .................................................................................................................... 9 1.4 IPython 魔法命令 ....................................................................................................................... 9 1.4.1 粘贴代码块: %paste 和 %cpaste ................................................................................. 9 1.4.2 执行外部代码: %run ................................................................................................... 10 1.4.3 计算代码运行时间: %timeit ..................................................................................... 11 1.4.4 魔法函数的帮助: ? 、 %magic 和 %lsmagic ................................................................ 11 1.5 输入和输出历史 ....................................................................................................................... 12 1.5.1 IPython 的输入和输出对象 ......................................................................................... 12 1.5.2 下划线快捷键和以前的输出 ....................................................................................... 13 1.5.3 禁止输出 ...................................................................................................................... 13 v 图灵社区会员 felix123(490049061@qq.com) 专享 尊重版权1.5.4 相关的魔法命令 .......................................................................................................... 13 1.6 IPython 和 shell 命令 ................................................................................................................ 14 1.6.1 shell 快速入门 .............................................................................................................. 14 1.6.2 IPython 中的 shell 命令 ............................................................................................... 15 1.6.3 在 shell 中传入或传出值 ............................................................................................. 15 1.7 与 shell 相关的魔法命令 ......................................................................................................... 16 1.8 错误和调试 ............................................................................................................................... 17 1.8.1 控制异常: %xmode ....................................................................................................... 17 1.8.2 调试:当阅读轨迹追溯不足以解决问题时 .............................................................. 19 1.9 代码的分析和计时 ................................................................................................................... 21 1.9.1 代码段计时: %timeit 和 %time ................................................................................. 22 1.9.2 分析整个脚本: %prun ................................................................................................. 23 1.9.3 用 %lprun 进行逐行分析 ............................................................................................. 24 1.9.4 用 %memit 和 %mprun 进行内存分析 ........................................................................... 25 1.10 IPython 参考资料 ................................................................................................................... 26 1.10.1 网络资源 .................................................................................................................... 26 1.10.2 相关图书 .................................................................................................................... 27 第 2 章 NumPy 入门 ....................................................................................................................... 28 2.1 理解 Python 中的数据类型 ...................................................................................................... 29 2.1.1 Python 整型不仅仅是一个整型 .................................................................................. 30 2.1.2 Python 列表不仅仅是一个列表 .................................................................................. 31 2.1.3 Python 中的固定类型数组 .......................................................................................... 32 2.1.4 从 Python 列表创建数组 ............................................................................................. 32 2.1.5 从头创建数组 .............................................................................................................. 33 2.1.6 NumPy 标准数据类型 ................................................................................................. 34 2.2 NumPy 数组基础 ...................................................................................................................... 35 2.2.1 NumPy 数组的属性 ..................................................................................................... 36 2.2.2 数组索引:获取单个元素 .......................................................................................... 37 2.2.3 数组切片:获取子数组 .............................................................................................. 38 2.2.4 数组的变形 .................................................................................................................. 41 2.2.5 数组拼接和分裂 .......................................................................................................... 42 2.3 NumPy 数组的计算:通用函数 .............................................................................................. 44 2.3.1 缓慢的循环 .................................................................................................................. 44 2.3.2 通用函数介绍 .............................................................................................................. 45 2.3.3 探索 NumPy 的通用函数 ............................................................................................ 46 2.3.4 高级的通用函数特性 .................................................................................................. 49 2.3.5 通用函数:更多的信息 .............................................................................................. 51 2.4 聚合:最小值、最大值和其他值 ........................................................................................... 51 2.4.1 数组值求和 .................................................................................................................. 51 2.4.2 最小值和最大值 .......................................................................................................... 52 vi | 目录2.4.3 示例:美国总统的身高是多少 .................................................................................. 54 2.5 数组的计算:广播 ................................................................................................................... 55 2.5.1 广播的介绍 .................................................................................................................. 55 2.5.2 广播的规则 .................................................................................................................. 57 2.5.3 广播的实际应用 .......................................................................................................... 60 2.6 比较、掩码和布尔逻辑 ........................................................................................................... 61 2.6.1 示例:统计下雨天数 .................................................................................................. 61 2.6.2 和通用函数类似的比较操作 ...................................................................................... 62 2.6.3 操作布尔数组 .............................................................................................................. 64 2.6.4 将布尔数组作为掩码 .................................................................................................. 66 2.7 花哨的索引 ............................................................................................................................... 69 2.7.1 探索花哨的索引 .......................................................................................................... 69 2.7.2 组合索引 ...................................................................................................................... 70 2.7.3 示例:选择随机点 ...................................................................................................... 71 2.7.4 用花哨的索引修改值 .................................................................................................. 72 2.7.5 示例:数据区间划分 .................................................................................................. 73 2.8 数组的排序 ............................................................................................................................... 75 2.8.1 NumPy 中的快速排序: np.sort 和 np.argsort ...................................................... 76 2.8.2 部分排序:分隔 .......................................................................................................... 77 2.8.3 示例:K 个最近邻 ....................................................................................................... 78 2.9 结构化数据:NumPy 的结构化数组 ...................................................................................... 81 2.9.1 生成结构化数组 .......................................................................................................... 83 2.9.2 更高级的复合类型 ...................................................................................................... 84 2.9.3 记录数组:结构化数组的扭转 .................................................................................. 84 2.9.4 关于 Pandas .................................................................................................................. 85 第 3 章 Pandas 数据处理 .............................................................................................................. 86 3.1 安装并使用 Pandas................................................................................................................... 86 3.2 Pandas 对象简介 ....................................................................................................................... 87 3.2.1 Pandas 的 Series 对象 ................................................................................................. 87 3.2.2 Pandas 的 DataFrame 对象 ........................................................................................... 90 3.2.3 Pandas 的 Index 对象 .................................................................................................. 93 3.3 数据取值与选择 ....................................................................................................................... 95 3.3.1 Series 数据选择方法 .................................................................................................. 95 3.3.2 DataFrame 数据选择方法 ............................................................................................ 98 3.4 Pandas 数值运算方法 ............................................................................................................. 102 3.4.1 通用函数:保留索引 ................................................................................................ 102 3.4.2 通用函数:索引对齐 ................................................................................................ 103 3.4.3 通用函数: DataFrame 与 Series 的运算 ................................................................. 105 3.5 处理缺失值 ............................................................................................................................. 106 3.5.1 选择处理缺失值的方法 ............................................................................................ 106 目录 | vii3.5.2 Pandas 的缺失值 ........................................................................................................ 107 3.5.3 处理缺失值 ................................................................................................................ 110 3.6 层级索引 ................................................................................................................................. 113 3.6.1 多级索引 Series ........................................................................................................ 113 3.6.2 多级索引的创建方法 ................................................................................................ 116 3.6.3 多级索引的取值与切片 ............................................................................................ 119 3.6.4 多级索引行列转换 .................................................................................................... 121 3.6.5 多级索引的数据累计方法 ........................................................................................ 124 3.7 合并数据集: Concat 与 Append 操作 ................................................................................... 125 3.7.1 知识回顾:NumPy 数组的合并 ............................................................................... 126 3.7.2 通过 pd.concat 实现简易合并 ................................................................................. 126 3.8 合并数据集:合并与连接 ..................................................................................................... 129 3.8.1 关系代数 .................................................................................................................... 129 3.8.2 数据连接的类型 ........................................................................................................ 130 3.8.3 设置数据合并的键 .................................................................................................... 132 3.8.4 设置数据连接的集合操作规则 ................................................................................ 134 3.8.5 重复列名: suffixes 参数 .......................................................................................... 135 3.8.6 案例:美国各州的统计数据 .................................................................................... 136 3.9 累计与分组 ............................................................................................................................. 140 3.9.1 行星数据 .................................................................................................................... 140 3.9.2 Pandas 的简单累计功能 ............................................................................................ 141 3.9.3 GroupBy :分割、应用和组合 ................................................................................... 142 3.10 数据透视表 ........................................................................................................................... 150 3.10.1 演示数据透视表 ..................................................................................................... 150 3.10.2 手工制作数据透视表 ............................................................................................. 151 3.10.3 数据透视表语法 ..................................................................................................... 151 3.10.4 案例:美国人的生日 ............................................................................................. 153 3.11 向量化字符串操作 ............................................................................................................... 157 3.11.1 Pandas 字符串操作简介 ......................................................................................... 157 3.11.2 Pandas 字符串方法列表 ......................................................................................... 159 3.11.3 案例:食谱数据库 ................................................................................................. 163 3.12 处理时间序列 ....................................................................................................................... 166 3.12.1 Python 的日期与时间工具 ..................................................................................... 166 3.12.2 Pandas 时间序列:用时间作索引 ......................................................................... 169 3.12.3 Pandas 时间序列数据结构 ..................................................................................... 170 3.12.4 时间频率与偏移量 ................................................................................................. 172 3.12.5 重新取样、迁移和窗口 ......................................................................................... 173 3.12.6 更多学习资料 ......................................................................................................... 178 3.12.7 案例:美国西雅图自行车统计数据的可视化 ..................................................... 179 3.13 高性能 Pandas: eval() 与 query() ................................................................................... 184 3.13.1 query() 与 eval() 的设计动机:复合代数式 ..................................................... 184 viii | 目录3.13.2 用 pandas.eval() 实现高性能运算 ...................................................................... 185 3.13.3 用 DataFrame.eval() 实现列间运算 .................................................................... 187 3.13.4 DataFrame.query() 方法 ....................................................................................... 188 3.13.5 性能决定使用时机 ................................................................................................. 189 3.14 参考资料 ............................................................................................................................... 189 第 4 章 Matplotlib 数据可视化 ................................................................................................... 191 4.1 Matplotlib 常用技巧 ............................................................................................................... 192 4.1.1 导入 Matplotlib ........................................................................................................... 192 4.1.2 设置绘图样式 ............................................................................................................ 192 4.1.3 用不用 show() ?如何显示图形 ............................................................................... 192 4.1.4 将图形保存为文件 .................................................................................................... 194 4.2 两种画图接口 ......................................................................................................................... 195 4.2.1 MATLAB 风格接口 ................................................................................................... 195 4.2.2 面向对象接口 ............................................................................................................ 196 4.3 简易线形图 ............................................................................................................................. 197 4.3.1 调整图形:线条的颜色与风格 ................................................................................ 199 4.3.2 调整图形:坐标轴上下限 ........................................................................................ 200 4.3.3 设置图形标签 ............................................................................................................ 203 4.4 简易散点图 ............................................................................................................................. 204 4.4.1 用 plt.plot 画散点图 ............................................................................................... 205 4.4.2 用 plt.scatter 画散点图 ......................................................................................... 206 4.4.3 plot 与 scatter :效率对比 ..................................................................................... 208 4.5 可视化异常处理 ..................................................................................................................... 208 4.5.1 基本误差线 ................................................................................................................ 209 4.5.2 连续误差 .................................................................................................................... 210 4.6 密度图与等高线图 ................................................................................................................. 211 4.7 频次直方图、数据区间划分和分布密度 ............................................................................. 215 4.8 配置图例 ................................................................................................................................. 219 4.8.1 选择图例显示的元素 ................................................................................................ 221 4.8.2 在图例中显示不同尺寸的点 .................................................................................... 222 4.8.3 同时显示多个图例 .................................................................................................... 223 4.9 配置颜色条 ............................................................................................................................. 224 4.9.1 配置颜色条 ................................................................................................................ 224 4.9.2 案例:手写数字 ........................................................................................................ 228 4.10 多子图 ................................................................................................................................... 230 4.10.1 plt.axes :手动创建子图 ...................................................................................... 230 4.10.2 plt.subplot :简易网格子图 ................................................................................ 231 4.10.3 plt.subplots :用一行代码创建网格 .................................................................. 233 4.10.4 plt.GridSpec :实现更复杂的排列方式 .............................................................. 234 目录 | ix4.11 文字与注释 ........................................................................................................................... 235 4.11.1 案例:节假日对美国出生率的影响 ..................................................................... 236 4.11.2 坐标变换与文字位置 ............................................................................................. 237 4.11.3 箭头与注释 ............................................................................................................. 239 4.12 自定义坐标轴刻度 ............................................................................................................... 241 4.12.1 主要刻度与次要刻度 ............................................................................................. 242 4.12.2 隐藏刻度与标签 ..................................................................................................... 243 4.12.3 增减刻度数量 ......................................................................................................... 244 4.12.4 花哨的刻度格式 ..................................................................................................... 245 4.12.5 格式生成器与定位器小结 ..................................................................................... 247 4.13 Matplotlib 自定义:配置文件与样式表 ............................................................................. 248 4.13.1 手动配置图形 ......................................................................................................... 248 4.13.2 修改默认配置: rcParams ...................................................................................... 249 4.13.3 样式表 ..................................................................................................................... 251 4.14 用 Matplotlib 画三维图 ........................................................................................................ 255 4.14.1 三维数据点与线 ..................................................................................................... 256 4.14.2 三维等高线图 ......................................................................................................... 256 4.14.3 线框图和曲面图 ..................................................................................................... 258 4.14.4 曲面三角剖分 ......................................................................................................... 259 4.15 用 Basemap 可视化地理数据 .............................................................................................. 261 4.15.1 地图投影 ................................................................................................................. 263 4.15.2 画一个地图背景 ..................................................................................................... 267 4.15.3 在地图上画数据 ..................................................................................................... 269 4.15.4 案例:美国加州城市数据 ..................................................................................... 270 4.15.5 案例:地表温度数据 ............................................................................................. 271 4.16 用 Seaborn 做数据可视化 .................................................................................................... 273 4.16.1 Seaborn 与 Matplotlib ............................................................................................. 274 4.16.2 Seaborn 图形介绍 ................................................................................................... 275 4.16.3 案例:探索马拉松比赛成绩数据 ......................................................................... 283 4.17 参考资料 ............................................................................................................................... 290 4.17.1 Matplotlib 资源 ....................................................................................................... 290 4.17.2 其他 Python 画图程序库 ........................................................................................ 290 第 5 章 机器学习 ............................................................................................................................ 291 5.1 什么是机器学习 ..................................................................................................................... 291 5.1.1 机器学习的分类 ........................................................................................................ 292 5.1.2 机器学习应用的定性示例 ........................................................................................ 292 5.1.3 小结 ............................................................................................................................ 299 5.2 Scikit-Learn 简介 .................................................................................................................... 300 5.2.1 Scikit-Learn 的数据表示 ........................................................................................... 300 5.2.2 Scikit-Learn 的评估器 API ........................................................................................ 302 x | 目录5.2.3 应用:手写数字探索 ................................................................................................ 309 5.2.4 小结 ............................................................................................................................ 313 5.3 超参数与模型验证 ................................................................................................................. 313 5.3.1 什么是模型验证 ........................................................................................................ 314 5.3.2 选择最优模型 ............................................................................................................ 317 5.3.3 学习曲线 .................................................................................................................... 322 5.3.4 验证实践:网格搜索 ................................................................................................ 326 5.3.5 小结 ............................................................................................................................ 327 5.4 特征工程 ................................................................................................................................. 327 5.4.1 分类特征 .................................................................................................................... 327 5.4.2 文本特征 .................................................................................................................... 329 5.4.3 图像特征 .................................................................................................................... 330 5.4.4 衍生特征 .................................................................................................................... 330 5.4.5 缺失值填充 ................................................................................................................ 332 5.4.6 特征管道 .................................................................................................................... 332 5.5 专题:朴素贝叶斯分类 ......................................................................................................... 333 5.5.1 贝叶斯分类 ................................................................................................................ 333 5.5.2 高斯朴素贝叶斯 ........................................................................................................ 334 5.5.3 多项式朴素贝叶斯 .................................................................................................... 336 5.5.4 朴素贝叶斯的应用场景 ............................................................................................ 339 5.6 专题:线性回归 ..................................................................................................................... 340 5.6.1 简单线性回归 ............................................................................................................ 340 5.6.2 基函数回归 ................................................................................................................ 342 5.6.3 正则化 ........................................................................................................................ 346 5.6.4 案例:预测自行车流量 ............................................................................................ 349 5.7 专题:支持向量机 ................................................................................................................. 353 5.7.1 支持向量机的由来 .................................................................................................... 354 5.7.2 支持向量机:边界最大化 ........................................................................................ 355 5.7.3 案例:人脸识别 ........................................................................................................ 363 5.7.4 支持向量机总结 ........................................................................................................ 366 5.8 专题:决策树与随机森林 ..................................................................................................... 367 5.8.1 随机森林的诱因:决策树 ........................................................................................ 367 5.8.2 评估器集成算法:随机森林 .................................................................................... 371 5.8.3 随机森林回归 ............................................................................................................ 373 5.8.4 案例:用随机森林识别手写数字 ............................................................................ 374 5.8.5 随机森林总结 ............................................................................................................ 376 5.9 专题:主成分分析 ................................................................................................................. 376 5.9.1 主成分分析简介 ........................................................................................................ 377 5.9.2 用 PCA 作噪音过滤 ................................................................................................... 383 5.9.3 案例:特征脸 ............................................................................................................ 385 5.9.4 主成分分析总结 ........................................................................................................ 387 目录 | xi 图灵社区会员 felix123(490049061@qq.com) 专享 尊重版权5.10 专题:流形学习 ................................................................................................................... 388 5.10.1 流形学习:“HELLO” ............................................................................................ 388 5.10.2 多维标度法(MDS) .............................................................................................. 389 5.10.3 将 MDS 用于流形学习 .......................................................................................... 391 5.10.4 非线性嵌入:当 MDS 失败时 .............................................................................. 393 5.10.5 非线性流形:局部线性嵌入 ................................................................................. 395 5.10.6 关于流形方法的一些思考 ..................................................................................... 396 5.10.7 示例:用 Isomap 处理人脸数据 ........................................................................... 397 5.10.8 示例:手写数字的可视化结构 ............................................................................. 400 5.11 专题:k-means 聚类 ............................................................................................................. 402 5.11.1 k-means 简介 ........................................................................................................... 403 5.11.2 k-means 算法:期望最大化 ................................................................................... 404 5.11.3 案例 ......................................................................................................................... 409 5.12 专题:高斯混合模型 ........................................................................................................... 415 5.12.1 高斯混合模型(GMM)为什么会出现:k-means 算法的缺陷 ......................... 415 5.12.2 一般化 E-M:高斯混合模型 ................................................................................. 417 5.12.3 将 GMM 用作密度估计 ......................................................................................... 421 5.12.4 示例:用 GMM 生成新的数据 ............................................................................. 425 5.13 专题:核密度估计 ............................................................................................................... 427 5.13.1 KDE 的由来:直方图 ............................................................................................ 428 5.13.2 核密度估计的实际应用 ......................................................................................... 431 5.13.3 示例:球形空间的 KDE ........................................................................................ 433 5.13.4 示例:不是很朴素的贝叶斯 ................................................................................. 436 5.14 应用:人脸识别管道 ........................................................................................................... 439 5.14.1 HOG 特征 ............................................................................................................... 440 5.14.2 HOG 实战:简单人脸识别器 ............................................................................... 441 5.14.3 注意事项与改进方案 ............................................................................................. 445 5.15 机器学习参考资料 ............................................................................................................... 446 5.15.1 Python 中的机器学习 ............................................................................................. 446 5.15.2 通用机器学习资源 ................................................................................................. 447 关于作者 .............................................................................................................................................. 448

...展开详情
上传时间:2018-07 大小:13.91MB
热门图书