这一篇讲量化工程的地基层:把 Python 写成结构清晰的软件,再把数据处理写得又快又不踩坑。适合已有一点 Python 基础、想系统补齐”编程功底 + pandas 内核”的人。
本篇对应两门课:OOP 面向对象编程(32 讲)+ pandas 数据分析(22 讲)。系列总纲见 量化工程能力知识图谱与学习路线。 顶层总路径见 量化投资学习路径图。参考教材 / 源码
- 《Python Object-Oriented Programming(第 4 版)》Steven F. Lott、Dusty Phillips(Packt)· 代码库 https://github.com/PacktPublishing/Python-Object-Oriented-Programming—4th-edition
- 《Python for Data Analysis(第 3 版)》Wes McKinney(O’Reilly)· 代码库 https://github.com/wesm/pydata-book
为什么要学这块
量化代码首先是软件。策略、因子、回测框架都是要长期维护、反复改动的工程,写得乱一点,后面每加一个因子都要还债。所以第一步是把 Python 的面向对象和软件工程习惯打牢——这是 OOP 这门课的任务。
第二步是数据。量化里大概九成时间花在数据上:加载、清洗、对齐、分组、重采样。pandas 是这一层的标准工具,但大多数人只停在”查 API 拼命试”,写出来的代码要么慢几十上百倍,要么莫名其妙被 SettingWithCopyWarning 咬一口还不知道为什么。懂它的内存布局,这些问题才从”玄学”变成”可预测”。
这一篇的角度:内核解剖,不止会用,更懂为什么
市面上的 pandas 内容多是用法教程——告诉你 groupby().agg() 怎么写,但不告诉你它内部怎么分组、为什么某种写法快 87 倍。这套课的差异在于每讲两层:
- 用法精通:跟着 Wes McKinney《Python for Data Analysis》第 3 版把用法过透,配大量随堂练和真实数据实战。
-
内核剖析:拆开底层实现——数据在内存里怎么摆、哪个类在干活、”快”和”坑”从哪来。真读 pandas 2.3.3 / numpy 2.4.6 的源码(引用标到
文件:行号,全部 grep 核对),能跑的就当场inspect验证。
一条主线贯穿全程:pandas = numpy 的内存模型 + 带标签的索引 + 块化的列存。抓住”内存布局”这条线,用法和陷阱都变得有迹可循。OOP 那门课同理,主线是”如何把系统拆成对象,让代码好懂、好改、好扩展”。
你会学到什么(对应课程讲次)
OOP 面向对象(32 讲)
| 板块 | 讲次 | 内容 |
|---|---|---|
| 面向对象思维 | 01–02 | 对象/类/状态/行为、封装抽象接口、组合聚合、UML |
| 类与继承 | 06–10 |
__init__/self、类型提示、继承与 super、多重继承、多态与鸭子类型 |
| 异常与属性 | 11–14 | 异常层级、自定义异常、property、上下文管理器 with
|
| 抽象与协议 | 15–16 | 抽象基类 ABC、Protocol、运算符重载、元类一瞥 |
| 数据结构 | 17–18 | 命名元组/字典/集合/队列、@dataclass
|
| 迭代器与生成器 | 23–24 | 迭代器协议、推导式、生成器函数与表达式 |
| 设计模式 | 25–28 | 装饰器/观察者/策略/命令/状态/单例、适配器/外观/享元/抽象工厂/组合/模板 |
| 测试与并发 | 29–31 |
unittest/pytest、Mock、TDD、线程/多进程/future/AsyncIO |
pandas 数据分析(22 讲)
| 板块 | 讲次 | 内核重点 |
|---|---|---|
| numpy 内存模型 | 02–04 | ndarray 的 strides、视图 vs 拷贝、广播机制、花式索引必拷贝 |
| 核心数据结构 | 05–07 | Series=ndarray+Index、Index 是哈希表、DataFrame 的 BlockManager、copy-vs-view 与 CoW |
| 加载与清洗 | 08–11 | read_csv 的 C 解析引擎、NaN vs pd.NA、str 访问器、Categorical 字典编码
|
| 连接与重塑 | 12–14 | MultiIndex 的 levels+codes、merge 的哈希连接、stack/unstack |
| 分组聚合 | 15–17 | groupby 的 factorize 分组、Cython 聚合、透视表本质 |
| 时序与性能 | 18–21 | DatetimeIndex=int64 纳秒、resample 分箱、rolling、性能与陷阱总讲 |
承上启下
这是系列的第一层。地基打好后,下一站是 【工程·研究篇】机器学习算法与量化应用——同样是”手搓 + 读源码”的路子,把这里练出的向量化直觉和读源码方法接着用到算法和交易上。完整地图见 量化工程能力知识图谱与学习路线。