Python极简讲义:一本书入门数据分析与机器学习
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

为什么写此书

我们正处于一个数据科技(Data Technology,DT)时代。在这个时代,我们的一举一动都能在数据空间留下电子印记,于是海量的社交、电商、科研大数据扑面而来。然而,太多的数据给人们带来的,可能并不是更多的洞察,反而是迷失。

因为仅就数据本身而言,它们是“一无所知”的。数据的价值,在于形成信息,变成知识,乃至升华为智慧。也就是说,这些数据如果不能进一步被“深加工”,即使数据量再“大”,也意义甚小。

于是,就派生出这么一个问题:这些数据,由谁来深加工?其实,早在2012年,《哈佛商业评论》就刊登了一篇文章并给出了答案,进行数据深加工的人就是“数据科学家”。文章还断言,数据科学家是21世纪最“性感”的职业。

但如何成为一名数据科学家呢?尤其是一名“性感”的数据科学家?作为一个有点文艺范儿的理工男,我喜欢读书,从书中获得启迪。

我曾读过埃里克·莱斯(Eric Ries)写的一本有关创业的书,书名是《精益创业》(The Lean Startup)。在阅读这本书时,有一个概念深入我心,那就是“最小可行产品”(Minimum Viable Product,MVP)。围绕这个概念,创业者在创业初期不可贪多求全,而应该先做出一个最小的可用产品,拿到市场上去检验,然后根据反馈反复迭代,打磨升级,最终做出比较完善、比较成功的产品。

后来,我看到有人提出了类似的概念——最少必要知识(Minimal Actionable Knowledge and Experience,MAKE)。这个概念点醒了我,我觉得自己大概找到了“如何成为一名数据科学家”这个问题的答案:You can MAKE it!

先来说说什么是MAKE。它指的是入门某个新领域切实可行的最小知识集合。MAKE说起来好像比较高级,但实际上,它背后有一个支撑它的朴素原则——Pareto原则(亦称80-20原则),即80%的工作问题可以通过掌握20%的知识来解决。

同样,想成为一名“性感”的数据科学家,一条路自然是按部就班地学习所有技能——十年磨一剑,但这样做的风险在于,当你“携剑下山”时,别人可能已经用上了飞机、大炮。这样的对垒,你胜算几何?

其实还有另一条备选之路,那就是走一走MAKE之道。在学习某项技能(如Python、数据分析、机器学习)时,我们要想办法在最短的时间内,摸索清楚这项技能的“最少必要知识”。一方面,它已然可以帮我们解决工作中的大部分问题;另一方面,入门之后,技能的提升通道可以在实践中寻得,缺啥补啥。有明确的任务导向,学习就会有如神助,这也是当前时代的快节奏学习法。

说到这里,本书的写作初衷就呼之欲出了。是的,这本书的定位就是,为初学者提供关于数据科学的“最少必要知识”,从而让你获得那份最“性感”的工作。这些知识包含了成为数据科学家所需要掌握的基础内容——Python编程、数据分析、机器学习。

本书内容

本书主要介绍Python的基础知识、数据分析的必备技能,以及机器学习相关内容。全书共分10章,每章的内容简介如下。

第1章 初识Python与Jupyter

Python是最具人气的编程语言之一,Jupyter是人气与口碑俱佳的Python开发平台。本章将介绍Python和Jupyter的基本内容,包括Python的安装与运行,以及文学化编程利器Jupyter的使用方法。

第2章 数据类型与程序控制结构

本章将介绍Python的基础语法及常见的数据类型,包括数值型、布尔类型、字符串型、列表、元组、字典、集合等。此外,本章还将介绍三种程序控制结构(顺序结构、选择结构和循环结构)和高效的推导式。

第3章 自建Python模块与第三方模块

本章将介绍Python的自定义模块及常用的第三方模块,包括collection、datetime、json、random等模块。

第4章 Python函数

本章将讨论Python的函数定义、函数参数(关键字参数、可变参数、默认参数等)的“花式”传递、函数的递归调用,以及函数式编程。

第5章 Python高级特性

本章将介绍Python中的一些高阶应用,这些高阶应用能让我们更高效地写出更专业的Python代码。本章内容涉及面向对象程序设计思想、生成器与迭代器、文件操作、异常处理及错误调试等。

第6章 NumPy向量计算

本章将讨论NumPy数组的构建、方法和属性,介绍NumPy的广播机制、布尔索引、数组的堆叠,以及爱因斯坦求和约定等。

第7章 Pandas数据分析

Pandas是数据分析的利器,本章将主要介绍Pandas的两种常用数据处理结构:Series和DataFrame。同时介绍基于Pandas的文件读取与分析,涉及数据的清洗、条件过滤、聚合与分组等。

第8章 Matplotlib与Seaborn可视化分析

Matplotlib和Seaborn是非常好用的数据可视化包,本章将主要介绍Matplotlib和Seaborn的基本用法,并基于此绘制可视化图形,包括散点图、条形图、直方图、饼图等。同时,本章将以谷歌流感趋势数据为例,结合Pandas进行可视化分析。

第9章 机器学习初步

本章将主要介绍有关机器学习的初步知识,包括机器学习的定义,机器学习的几个主要流派,并讨论机器学习模型的性能评估指标,包括混淆矩阵、查准率、查全率、P-R曲线、ROC曲线等。

第10章 sklearn与经典机器学习算法

本章将主要讲解知名机器学习框架sklearn的用法,并介绍几种经典机器学习算法的原理和实战,这些算法包括线性回归、k-近邻算法、Logistics回归、神经网络学习算法、k均值聚类算法等。

阅读准备

要想运行本书中的示例代码,需要提前安装如下系统及软件。

●操作系统:Windows、macOS、Linux均可。

●Python环境:建议使用Anaconda安装,确保版本为Python 3.x即可。

●NumPy:建议使用Anaconda安装NumPy 1.18及以上版本。

●Pandas:建议使用Anaconda安装Pandas 1.0.1及以上版本。

●sklearn:建议使用Anaconda安装sklearn 0.22.1及以上版本。

联系作者

数据科学是一个前沿且广袤的研究领域,很少有人能对其每个研究方向都有深刻的认知。我自认才疏学浅,同时限于时间与篇幅,书中难免出现理解偏差和错缪之处。若读者朋友们在阅读本书的过程中发现问题,希望能及时与我联系,我将在第一时间修正并对此不胜感激。

邮件地址:zhangyuhong001@gmail.com。

致谢

这本《Python极简讲义:一本书入门数据分析与机器学习》,从构思大纲、查阅资料、撰写内容、绘制图片,到出版成书,历时一年有余。图书得以面市,自然得益于多方面的帮助和支持。在信息获取上,我学习并吸纳了很多精华知识,书中也尽可能地给出了文献出处,如有疏漏,望来信告知。在这里,我对这些高价值资料的提供者、生产者,表示深深的敬意和感谢。

很多人在这本书的出版过程中扮演了重要角色——电子工业出版社博文视点的孙奇俏老师在选题策划和文字编辑上,国网河北电科院计量中心的赵佩、河南工业大学的苏灏等在文稿校对上,都付出了辛勤的劳动,在此对他们一并表示感谢。

张玉宏

2020年3月于美国

读者服务

微信扫码回复:38704

●获取博文视点学院20元付费内容抵扣券

●获取本书配套代码资源

●获取更多技术专家分享的视频与学习资源

●加入本书读者交流群,与更多读者互动