跳到正文

Python 学习路径:从环境配置到统计建模的阅读顺序

Python 语言共 25 篇文章,分五个阶段。阶段之间有依赖:pandas 的操作建立在对 NumPy 数组和 Python 语法的理解之上,统计建模又建立在数据整理之上。按顺序读完一遍约需 6 到 8 周,每周投入 5 小时左右。

如果只想解决问题,不必按顺序读。每篇文章都自成一体,代码复制到 Jupyter 即可运行。

阶段 内容 篇数 读完能做什么
Python 与环境基础 5 装好环境,理解数组与 DataFrame,会写函数和控制流
pandas 数据操作 6 把原始数据整理成可以直接建模或画图的样子
Matplotlib 与 Seaborn 可视化 5 画出能放进论文的图
统计建模 5 跑回归、方差分析与预测建模,读懂输出
报告与可重复研究 4 把分析和图表组织成可复现的文档与站点

先装环境,再理解两个基础库:NumPy 负责数值数组,pandas 在它之上提供带标签的表格。

顺序 文章 前置
1 Jupyter Notebook 入门
2 NumPy 数组与向量化计算 Jupyter 入门
3 Pandas Series 与 DataFrame NumPy 数组
4 条件判断与循环 Jupyter 入门
5 函数定义:参数、返回值与作用域 条件判断与循环

第 2 篇和第 3 篇是重点。数组的 shape 与广播规则、DataFrame 的索引对齐、lociloc 的区别,这三个点会在后面每一篇文章里反复出现。

这一阶段覆盖读入数据到整理成分析表的完整流程,是使用频率最高的一组文章。

顺序 文章 前置
6 数据读写:CSV、Excel 与 JSON Pandas 基础
7 数据筛选与选择 数据读写
8 分组聚合 groupby 与 agg 数据筛选
9 数据合并:merge、join 与 concat 分组聚合
10 数据清洗:缺失值、重复值与类型转换 数据筛选
11 字符串处理:str 访问器 数据清洗

第 7、8 篇值得读到能默写。第 10 篇处理的是真实数据的常态:缺失、重复、类型错误。第 11 篇在问卷、日志、编号类数据上用得很多。

阶段三:Matplotlib 与 Seaborn 可视化

Section titled “阶段三:Matplotlib 与 Seaborn 可视化”
顺序 文章 前置
12 Matplotlib 基础 Pandas 基础
13 常用图形:柱状图、折线图与散点图 Matplotlib 基础
14 子图布局:subplots 与 GridSpec 常用图形
15 Seaborn 统计可视化 常用图形
16 样式定制与出版级图表 Matplotlib 基础

第 12 篇的核心是 Figure 与 Axes 的层级关系,以及面向对象接口与 pyplot 接口的分工,这一点决定后面写图的代码是否可维护。第 15 篇在统计图形(分布、分类、回归)上比 Matplotlib 省事得多。第 16 篇面向投稿,讲清了字体、尺寸与矢量图导出的要求。

绘图前通常需要先把数据整理成长表或宽表,这就是阶段二第 8、9 篇的用途。

这一阶段的五篇文章分别对应研究中最常见的几类分析。

顺序 文章 前置
17 描述性统计与假设检验 分组聚合
18 线性回归(statsmodels) 描述性统计
19 逻辑回归 线性回归
20 方差分析 线性回归
21 scikit-learn 入门 线性回归

第 18 篇的核心是读懂 summary() 的输出,而不是记住函数名。第 19、20 篇都建立在第 18 篇之上,可以按研究方向二选一。第 21 篇转向预测建模,讲 Pipeline、交叉验证与调参,做机器学习相关课题时从这里开始。

需要说明一点:statsmodels 面向统计推断,scikit-learn 面向预测。同一份数据用两者拟合,系数通常一致,但输出和评估方式不同。第 18 篇末尾有选择依据。

顺序 文章 前置
22 Notebook 导出:HTML、PDF 与幻灯片 Jupyter 入门
23 Jupyter Book 生成文档站点 Notebook 导出
24 表格生成:Styler 与格式导出 分组聚合
25 可重复研究与项目组织 全部

第 22 篇把分析过程变成可交付的报告。第 25 篇在写毕业论文时会用到:虚拟环境、随机种子、目录结构。第 23 篇面向需要把多份 Notebook 组织成站点的情况。

  • 用过 SPSS,没写过代码:从阶段一第 3 篇开始,阶段四可以直接跳到第 18 篇。
  • 用过 R:阶段一第 3 篇和第 8 篇快速过一遍,重点看索引对齐和 NaN 的处理,然后进阶段三。
  • 只想画图:阶段二的第 6、8 篇加阶段三。
  • 只想跑统计:阶段一第 3 篇加阶段四。
  • 想做机器学习:阶段一第 2 篇、阶段二第 7 至 9 篇,然后直接进阶段四第 21 篇。

本站的 R 语言与 Python 语言篇幅相等,同样五个阶段。两种语言没有主次优劣之分,选哪条取决于导师要求、课题组惯例和合作者的工具链。

需要同时使用时,两边的章节结构一一对应,可以对照阅读:数据操作见 dplyr 核心动词,可视化见 ggplot2 图形语法入门,统计建模见 R 线性回归。R 语言的完整顺序见 R 学习路径