学习 Python 数据分析的正确姿势
原文作者:Manu Jeevan
原文地址:How to Learn Python for Data Science the Right Way
如果你是通过学习给程序员设计的 Python 课程来学习 Python 数据分析,那就大错特错了。很多数据分析师在开始学习 Python 数据分析之前就被引导学习 LeetCode 上那些为程序员准备的编程谜题。这对于只需要提取、清洗数据、绘制可视化图、构建模型的数据分析师来说实在是误人子弟,数据分析师要学的不是开发应用软件,而是应该把时间和精力花在学习处理数据的模块与支持库上。请根据以下步骤一步步学习的Python 数据科学。
配置开发环境
Jupyter Notebook 是一个非常强大的开发环境,而且非常适合展示数据分析的结果。
Anaconda 是安装 Jupyter Notebook 最简单的方式,它是现在最流行的 Python 数据科学发行版,预装了很多最流行的支持库。
Anaconda
建议安装 Anaconda 时,选择支持 Python 3 最新版的版本。
安装好 Anaconda 以后,阅读这篇文章学习如何使用 Jupyter Notebook。
Jupyter Notebook 速查表
学些 Python 基础就够了
参考 DataCamp 的 Python 数据科学速查表,即可快速掌握 Python 的基础知识,如果想学习更多 Python 的基础知识,推荐看《Python基础教程(第3版)》。
Python基础教程
Python 数据科学速查表
Numpy 与 pandas 才是数据分析师要学的东西
Python 处理大规模数据,执行数字处理算法其实很慢。听到这里大家可能会问,那你凭什么说 Python 是最流行的数据分析编程语言?
这是因为 Python 有基于 C 与 Fortran 开发的支持库,就是接下来要说的 Numpy 与 Pandas。
数据分析师要学的首先是 Numpy。这是 Python 数据科学计算里最基本的支持库。Numpy 支持高度优化的多维数组,这是绝大多数机器学习算法里最基础的数据结构。
接下来要学的是 Pandas,要知道数据分析师的时间绝大多数都是花在清理数据上。Pandas 是最流行的数据处理支持库,它是 Numpy 的扩展,它的底层代码是基于 Numpy 开发的。Pandas 最主要的数据结构叫 DataFrame。
Pandas 的作者 Wes McKinney 编著的《利用 Python 进行数据分析》一书是学习的Pandas 最好的资料,该书第 4、5、7、8、10 这几章主要介绍 Numpy 与 Pandas,涵盖了这两个支持库操控数据的大部分功能。
呆鸟云:这里推荐阅读 Sean 的译本《利用Python进行数据分析·第2版》, 想要快速了解,也可以参考 DataCamp 的 Numpy 与 Pandas 速查表,点击链接可以下载呆鸟为大家精心制作的高清中文版哦!
Numpy 速查表
Pandas 基础速查表
Pandas 高阶速查表
学习用 Matplotlib 绘制可视化图
Matplotlib 是绘制基础可视化图的 Python 支持库。数据分析师至少要掌握如何使用Matplotlib 绘制最常用的可视图,包括折线图、条形图、散点图与箱型图等。
Seaborn 这个可视化支持库也很好用,它基于 Matplotlib 开发,并与 Pandas 高度集成。在初级阶段,建议先掌握 Matplotlib 的基础绘图法,不用过多了解 Seaborn。
本文作者曾写过下列四个教程介绍如何使用 Matplotlib 绘制可视图。
第一部分:Matplotlib 基础图形 第二部分:如何设置图形样式与颜色、线型、标签、色图等 第三部分:注解、坐标轴、图形比率、坐标系 第四部分:绘制复杂可视图
学完这四个教程后,就算是掌握了 Matplotlib 的基本操作。
友情提示,如今不用花太多时间学习 Matplotlib,很多公司现在都采用 Tableau 或 Qlik 这样的 BI 工具生成交互式可视化图。
Matplotlib 速查表
Seaborn 速查表
左手 SQL,右手 Python
现在,公司的数据都存在数据库里,因此,数据分析师要学会用 SQL 从数据库里提取数据,然后再在 Jupyter Notebook 里分析数据。
SQL 与 Pandas 是数据分析师的两大利器。有些简单的数据分析可以直接用 SQL 处理,有些用 Pandas 则更高效。我个人喜欢用 SQL 提取数据,然后用 Pandas 分析数据。
现在很多公司都采用 Mode Analytics 与 Databricks 这样的分析平台,可以轻松应用 Python 与 SQL 进行数据分析。
总之,数据分析师要了解如何高效使用 SQL 与 Python。推荐用 SQLite 学习 SQL 基础知识,上手简单,无需复杂配置。安装 SQLite,找个示例 CSV 文件,然后学习如何使用 SQL 与 Python 分析数据。这里有个帖子,可以指导你如何使用 Python 与 SQL 进行数据分析。Programming with Databases in Python using SQLite。
在浏览这篇帖子前,最好先了解一下 SQL 基础知识,Mode Analytics 有一篇教程非常不错:SQL 简介。掌握 SQL 是每位数据分析师必备的基本技能,只有掌握了 SQL 才能高效地从数据库里提取数据。
学习应用 Python 实践基础统计学理论
大多数野心勃勃的数据分析师上来就学习机器学习,却对统计学的基础知识不屑一顾。
千万别犯这种低级错误,统计学才是数据分析的支柱。另一方面,也不能只学习统计学的理论知识,却忽略了统计学实战操作。
所谓统计学实战,这里指的是,数据分析师应该懂得统计学能解决哪些问题,如何应用统计学处理各种难题。
以下是数据分析师必须精通的一些基本统计学概念:
采样、频率分布、均值、中位数、众数、变异性度量、概率基础知识、显著性测试,标准差,z-score,置信区间与假设检验(包括 A/B 测试)。
《面向数据科学家的实用统计学》这本书非常不错,可惜这本书里的代码示例都是用 R 语言写的,Python 爱好者可能会有些许不爽,建议 Python 数据分析师读这本书前四章就可以了。读了前四章就可以了解上面所说的基础统计学概念。这本书后面几章主要是介绍机器学习,下一段会对这方面内容进行详述。
《面向数据科学家的实用统计学》
还有不少人推荐《统计思维:程序员数学之概率统计(第2版)》这本书,这本书确实是用 Python 学统计学,但该书作者用的不是 StatsModels 这样的标准 Python 支持库介绍统计学,而是用自己写的函数,不具备通用性,因此,不太推荐本书。
统计思维
学完统计学的基础知识后,建议大家尝试学着用 Python 实现这些基本概念。StatsModels 这个 Python 支持库现在非常流行,其官网上的教程也不错,值得一看。
此外,还推荐 Gaël Varoquaux[1] 的视频教程,该教程介绍了如何使用 Python 与 StatsModels 实现推断性与探索性统计分析。
用 Scikit-Learn 实现机器学习
Scikit-Learn 是 Python 生态圈里最流行的机器学习库。对于大部分数据分析师来说,第一步目标就是学习如何使用 Scikit-Learn 执行最常见的机器学习算法。
首先,学习 Coursera 上吴恩达的机器学习教程,只要看第 1、2、3、6、7、8 周的视频就可以了。这里跳过了关于神经网络的内容,因为作为初学者来说,只需要关注最常用的机器学习技能就足够了。
学会了这些内容以后,接下来继续学习《机器学习实战:基于Scikit-Learn和TensorFlow 》。初学者只要阅读这本书的第一部分就可以了,大概有 300 多页。这是市面上介绍实战机器学习最好的一本书。
机器学习实战
呆鸟云:这里推荐 Sean 的译本《Scikit-Learn 与 TensorFlow 机器学习实用指南》
做完这本书里列出的习题以后,就可以学习如何用 Python 实践吴恩达机器学习课程里讲述的理论知识了。
结论
最后一步是用上述各步列出的知识动手实战一个数据科学项目。建议大家找一套自己感兴趣的数据集,提出一些有意思的业务问题,然后通过分析解答这些问题。但是,记住千万别再搞泰坦尼克或鸢尾花这样的机器学习项目了,都臭了大街了。这个帖子里列出了 19 个查找数据科学项目免费数据集的网站,大家可以看下。
还有一个大家可能喜欢的数据科学实战项目,这就是预测股市价格。通过雅虎金融可以实时抓取股票数据,把这些数据存到 SQL 数据库里,然后用机器学习预测股票价格。
如果你是从其他行业或职能转行做数据分析的,建议在工作中一定要充分利用自己已有的业务知识。