第7章 · 聚合与线性代数 本章要回答的两个问题:sum、mean、max 沿哪个轴压缩、结果形状怎么推?矩阵乘法与 linalg 套件(解方程、逆、特征值、SVD)怎么用,什么时候该换 SciPy 或专用库? 为什么会有这一章 聚合是"从数据到结论"的关键一步,而 axis 参数是初学者的集体噩梦——axis=0 到底是按行还是按列?答案其实可以机械推出:axis 指的是"被消掉的维度"。线性代数则是 NumPy 与科学计算的接口地带:矩阵乘法 @ 是深度学习的基础操作,linalg 提供解方程与分解,但规模上去之后就该考虑 BLAS 后端或换库。本章把两块内容各用一节讲透,并延续内存视角(聚合的访问方向、矩阵乘的缓存分块)。
本章要回答的两个问题:sum、mean、max 沿哪个轴压缩、结果形状怎么推?矩阵乘法与 linalg 套件(解方程、逆、特征值、SVD)怎么用,什么时候该换 SciPy 或专用库?
聚合是"从数据到结论"的关键一步,而 axis 参数是初学者的集体噩梦——axis=0 到底是按行还是按列?答案其实可以机械推出:axis 指的是"被消掉的维度"。线性代数则是 NumPy 与科学计算的接口地带:矩阵乘法 @ 是深度学习的基础操作,linalg 提供解方程与分解,但规模上去之后就该考虑 BLAS 后端或换库。本章把两块内容各用一节讲透,并延续内存视角(聚合的访问方向、矩阵乘的缓存分块)。
| 节 | 回答哪个问题 | 关键产出 |
|---|---|---|
| 7.1 axis聚合的降维之路 | axis 怎么理解 | 形状推算法 + keepdims 演练 |
| 7.2 linalg矩阵运算与求解 | 线代工具箱 | solve 与 inv 对比 + SVD 降噪案例 |
问:axis 到底是行还是列?
答:都不是。axis 是"被消掉的维度编号",结果形状等于原形状删掉那一项。忘掉行列直觉、改用形状推算,axis 从此不再神秘——7.1 节整节就在建立这个习惯。
问:线性代数早忘了,能学 7.2 吗?
答:能。本节只需要接受几个名词:矩阵是二维表、方程组是一组联立等式、特征值描述矩阵的"固有方向"。每个函数都配了可跑的最小例子,跑一遍比看十页教材直观。
问:什么时候不该用 np.linalg?
答:矩阵一大半是零(稀疏)、规模上万(性能瓶颈)、或者需要 GPU 加速时。识别出这些边界并及时换工具,本身就是工程能力。
聚合与线代是分析工具箱的最后两件。第 8 章收束全册:数组的搬运(合并分割、文件读写)与性能实战清单。本章两个案例(成绩单汇总与最小二乘拟合)都建议完整敲一遍——它们分别代表"统计报表"与"参数估计"两大应用方向的雏形。