Python 学习路径:从环境配置到统计建模的阅读顺序
Python 语言共 25 篇文章,分五个阶段。阶段之间有依赖:pandas 的操作建立在对 NumPy 数组和 Python 语法的理解之上,统计建模又建立在数据整理之上。按顺序读完一遍约需 6 到 8 周,每周投入 5 小时左右。
如果只想解决问题,不必按顺序读。每篇文章都自成一体,代码复制到 Jupyter 即可运行。
| 阶段 | 内容 | 篇数 | 读完能做什么 |
|---|---|---|---|
| 一 | Python 与环境基础 | 5 | 装好环境,理解数组与 DataFrame,会写函数和控制流 |
| 二 | pandas 数据操作 | 6 | 把原始数据整理成可以直接建模或画图的样子 |
| 三 | Matplotlib 与 Seaborn 可视化 | 5 | 画出能放进论文的图 |
| 四 | 统计建模 | 5 | 跑回归、方差分析与预测建模,读懂输出 |
| 五 | 报告与可重复研究 | 4 | 把分析和图表组织成可复现的文档与站点 |
阶段一:Python 与环境基础
Section titled “阶段一:Python 与环境基础”先装环境,再理解两个基础库:NumPy 负责数值数组,pandas 在它之上提供带标签的表格。
| 顺序 | 文章 | 前置 |
|---|---|---|
| 1 | Jupyter Notebook 入门 | 无 |
| 2 | NumPy 数组与向量化计算 | Jupyter 入门 |
| 3 | Pandas Series 与 DataFrame | NumPy 数组 |
| 4 | 条件判断与循环 | Jupyter 入门 |
| 5 | 函数定义:参数、返回值与作用域 | 条件判断与循环 |
第 2 篇和第 3 篇是重点。数组的 shape 与广播规则、DataFrame 的索引对齐、loc 与 iloc 的区别,这三个点会在后面每一篇文章里反复出现。
阶段二:pandas 数据操作
Section titled “阶段二:pandas 数据操作”这一阶段覆盖读入数据到整理成分析表的完整流程,是使用频率最高的一组文章。
| 顺序 | 文章 | 前置 |
|---|---|---|
| 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 篇的用途。
阶段四:统计建模
Section titled “阶段四:统计建模”这一阶段的五篇文章分别对应研究中最常见的几类分析。
| 顺序 | 文章 | 前置 |
|---|---|---|
| 17 | 描述性统计与假设检验 | 分组聚合 |
| 18 | 线性回归(statsmodels) | 描述性统计 |
| 19 | 逻辑回归 | 线性回归 |
| 20 | 方差分析 | 线性回归 |
| 21 | scikit-learn 入门 | 线性回归 |
第 18 篇的核心是读懂 summary() 的输出,而不是记住函数名。第 19、20 篇都建立在第 18 篇之上,可以按研究方向二选一。第 21 篇转向预测建模,讲 Pipeline、交叉验证与调参,做机器学习相关课题时从这里开始。
需要说明一点:statsmodels 面向统计推断,scikit-learn 面向预测。同一份数据用两者拟合,系数通常一致,但输出和评估方式不同。第 18 篇末尾有选择依据。
阶段五:报告与可重复研究
Section titled “阶段五:报告与可重复研究”| 顺序 | 文章 | 前置 |
|---|---|---|
| 22 | Notebook 导出:HTML、PDF 与幻灯片 | Jupyter 入门 |
| 23 | Jupyter Book 生成文档站点 | Notebook 导出 |
| 24 | 表格生成:Styler 与格式导出 | 分组聚合 |
| 25 | 可重复研究与项目组织 | 全部 |
第 22 篇把分析过程变成可交付的报告。第 25 篇在写毕业论文时会用到:虚拟环境、随机种子、目录结构。第 23 篇面向需要把多份 Notebook 组织成站点的情况。
已有基础时怎么跳
Section titled “已有基础时怎么跳”- 用过 SPSS,没写过代码:从阶段一第 3 篇开始,阶段四可以直接跳到第 18 篇。
- 用过 R:阶段一第 3 篇和第 8 篇快速过一遍,重点看索引对齐和 NaN 的处理,然后进阶段三。
- 只想画图:阶段二的第 6、8 篇加阶段三。
- 只想跑统计:阶段一第 3 篇加阶段四。
- 想做机器学习:阶段一第 2 篇、阶段二第 7 至 9 篇,然后直接进阶段四第 21 篇。
与 R 语言的关系
Section titled “与 R 语言的关系”本站的 R 语言与 Python 语言篇幅相等,同样五个阶段。两种语言没有主次优劣之分,选哪条取决于导师要求、课题组惯例和合作者的工具链。
需要同时使用时,两边的章节结构一一对应,可以对照阅读:数据操作见 dplyr 核心动词,可视化见 ggplot2 图形语法入门,统计建模见 R 线性回归。R 语言的完整顺序见 R 学习路径。