COLUMNS · 一本关于 Python 数据栈的小书

numpy、pandas、matplotlib、seaborn、scikit-learn——五个库,五套 API,五份文档。但它们底下是同一条列:一块连续的字节,被贴上名字,被接到眼睛上,被压成一个矩形。
这本书不教 API(那些都能查)。它讲的是每一层要什么形状,以及形状不对时它怎么表示——因为五层里只有一层会真的拦住你,其余四层出了问题都是安静的。

五卷 · 23 章亮色零依赖 每个数字都本机跑过numpy 2.5.2 / pandas 3.0.5 / sklearn 1.9.0
◆ 这本书的主线

这五个库共用的东西不是「Python」,是一条列。

numpy 说它是一块连续内存加一张说明书;pandas 给它贴上名字,于是有了对齐;seaborn 要它站成长表,才能映到视觉通道上;sklearn 要它压成一个纯数字的矩形。同一条列,四层意思。

而学这套工具真正难的地方从来不是记住函数名,是知道每一次交接会静默地改变什么——行数变多了、方向反了、名字对不上了、测试集泄漏了。这本书就是那份交接单。

为什么值得读

三个从书里挑出来的数字,都是本机跑出来的:

它看起来是它其实是
一份完全没有信号的随机数据,交叉验证报出 98.9% 的准确率挑特征这一步写在了交叉验证外面。放进 Pipeline 之后:51.1%(真值 50%)18
五个客户的表和订单表一合并,客户平均年龄从 40.00 变成 29.09一号客户下了 7 单,他的年龄被复制了 7 份。行数从 5 变成 11,没有任何提示10
一个方阵做「行归一化」,四行的和是 0.8、2.0、0.85、1.25广播从右往左对齐,所以做的是列归一化。长方形矩阵上会报错,方阵不会3

这三件事的共同点:代码没有一行是错的,也没有任何东西报错。数据还在,程序跑通了,结果看起来完全正常——只是它在回答另一个问题。

目录

卷 I

一条列

COLUMN

numpy。底下永远是一条平的列,其余全是说明书——shape 怎么折、strides 每步跳多远、dtype 每格几个字节。

卷 II

贴上名字

NAME

pandas。给每一列贴上名字,于是有了对齐——也有了这一卷全部的麻烦。这一卷讲的全是「静默地变多」和「静默地变少」。

卷 III

接到眼睛上

SEE

matplotlib 和 seaborn。画图不是画画,是把列接到视觉通道上——而在碰任何画图函数之前,得先把数据摆成对的形状。

卷 IV

唯一的队形

FIT

scikit-learn。208 个模型只认一种形状、只会三个动词。这是全书唯一会替你把关的一层——但它把关的只有形状,不包括「你的评估流程有没有被污染」。

卷 V

合上书之后

AFTER

这条列往下还要走多远,以及怎么把五层重新接回一条线。

写给谁

这本书写给

  • 会写代码、但数据这套工具是拼凑着学的人。能跑通教程,遇到形状报错就开始试——试到不报错为止,但不知道刚才发生了什么。
  • 用过 pandas 但被 index 咬过的人。见过莫名其妙的 NaN、见过 SettingWithCopyWarning、见过合并之后行数变多。
  • 想搞清楚「为什么我的模型分数这么好」的人。卷 IV 那四章可能是这本书最贵的部分。
  • 做别的方向、想知道这一套在干什么的工程师。第 1 章那张跨领域对照表就是为你写的——这套东西和 SQL、GPU、列式数据库、响应式流是同一个想法的不同实现。

这本书不打算做的

  • 不是 API 手册。函数签名和参数列表官方文档写得更好,也更新得更快。这里讲的是「为什么是这个形状」。
  • 不讲机器学习算法本身。卷 IV 讲的是评估流程和数据泄漏,不讲随机森林怎么分裂、SVM 的核函数怎么选。
  • 不装环境。每章的「⌨ 自己跑一遍」给的是能直接粘的代码和已经跑出来的答案。想在浏览器里跑就用 jupyter.org/try-jupyter,numpy 和 pandas 都是现成的。
  • 不假装数字是通用的。耗时类的数字取决于机器,但相对关系是稳的;非耗时的数字在同版本下应该逐位复现。

怎么读

  • 按顺序读。后面的每一章都在用前面的结论:第 3 章的 keepdims 要靠第 4 章的广播规则才讲得通,第 7 章的写时复制是第 5 章视图与副本的续集,第 18 章的泄漏是第 16 章那个 fit/transform 拆分的反面。
  • 只有一个小时的话,读第 18 章。那二十行代码是这本书最值得亲手跑的东西。
  • 每章末尾有一张「⌗ 交接单」——这一章的数据进来是什么形状、出去是什么形状、谁在检查。第 23 章把 23 张收成了一张表。
  • 每章有一个「✗ 这个直觉是错的」。它们大多是我自己踩过、或者见别人踩过的。
  • 键盘 / 翻页,右上角按钮开目录,Esc 关闭。

从第 1 章开始 ▶

或者 打开目录 挑一章 · 返回全站