第八章:NumPy入门——数组运算与数值计算
在上一章你写了一个小游戏,那很有意思。但如果你想教计算机从数据中"学习"——比如识别一张图片里有没有猫——靠普通的 Python 列表是不够的。你需要一个能高效处理大量数字的工具。NumPy 就是为此而生。
8.1 什么是 NumPy?
NumPy(Numerical Python)是 Python 科学计算的基石。它提供的 ndarray(多维数组)比 Python 原生列表快几十倍,因为它用 C 语言在底层一次性操作整块数据。
Python
Loading editor...
向量化运算的意思是:一条指令同时处理整个数组中的所有元素。这就是 NumPy 快的原因。
8.2 创建数组
Python
Loading editor...
Python
Loading editor...
8.3 数组的形状与索引
Python
Loading editor...
8.4 广播(Broadcasting)——NumPy 的魔法
不同形状的数组也能一起运算,NumPy 会自动"扩展"它们。
Python
Loading editor...
💡 NumPy 发现
scores是 (2,3) 而bonus是 (3,),它会自动把bonus复制一份变成 (2,3) 再相加。
8.5 统计与聚合
Python
Loading editor...
Python
Loading editor...
8.6 图像也能用数组表示
一张灰度图像本质上就是一个二维数组,每个元素代表一个像素的亮度。NumPy 让我们可以直接对图像做数学运算。
Python
Loading editor...
🎯 这就是计算机视觉的基础:一切图像都是数字矩阵。AI 识别猫狗的原理,本质上就是对这种数字矩阵做一系列数学变换。
本章小结
| 你学到了什么 | 具体内容 |
|---|---|
| ✅ NumPy 数组 | `np.array()` 创建,向量化运算 |
| ✅ 数组创建 | `zeros`、`ones`、`arange`、`random` |
| ✅ 形状操作 | `shape`、`ndim`、`size`、多维索引 |
| ✅ 广播机制 | 不同形状数组自动扩展对齐 |
| ✅ 统计聚合 | `mean`、`sum`、`std`、`axis` 参数 |
| ✅ 图像思维 | 图像 = 数字矩阵 |
🚀 下一章预告:有了 NumPy,你就能高效处理数值了。但现实世界的数据往往带有标签、有关联——接下来用 Pandas 玩转结构化数据!
本章内容基于 [NumPy 官方文档](https://numpy.org/doc/stable/) 改编,遵循 BSD License 许可。