01. NumPy入门——数组运算与数值计算
在上一章你写了一个小游戏,那很有意思。但如果你想教计算机从数据中"学习"——比如识别一张图片里有没有猫——靠普通的 Python 列表是不够的。你需要一个能高效处理大量数字的工具。NumPy 就是为此而生。
18.1 什么是 NumPy?¶
NumPy(Numerical Python)是 Python 科学计算的基石。它提供的 ndarray(多维数组)比 Python 原生列表快几十倍,因为它用 C 语言在底层一次性操作整块数据。
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
●等待编辑器...
○等待 Python 环境...
向量化运算的意思是:一条指令同时处理整个数组中的所有元素。这就是 NumPy 快的原因。
18.2 创建数组¶
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
●等待编辑器...
○等待 Python 环境...
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
●等待编辑器...
○等待 Python 环境...
18.3 数组的形状与索引¶
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
●等待编辑器...
○等待 Python 环境...
18.4 广播(Broadcasting)——NumPy 的魔法¶
不同形状的数组也能一起运算,NumPy 会自动"扩展"它们。
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
●等待编辑器...
○等待 Python 环境...
💡 NumPy 发现
scores是 (2,3) 而bonus是 (3,),它会自动把bonus复制一份变成 (2,3) 再相加。
18.5 统计与聚合¶
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
●等待编辑器...
○等待 Python 环境...
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
●等待编辑器...
○等待 Python 环境...
18.6 图像也能用数组表示¶
一张灰度图像本质上就是一个二维数组,每个元素代表一个像素的亮度。NumPy 让我们可以直接对图像做数学运算。
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
●等待编辑器...
○等待 Python 环境...
🎯 这就是计算机视觉的基础:一切图像都是数字矩阵。AI 识别猫狗的原理,本质上就是对这种数字矩阵做一系列数学变换。
18.7 动手练习¶
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
●等待编辑器...
○等待 Python 环境...
📋 参考答案(点击展开)
Python
14
准备加载编辑器...
🔧 正在准备编程环境...0%
●等待编辑器...
○等待 Python 环境...
18.8 本章小结¶
| 你学到了什么 | 具体内容 |
|---|---|
| ✅ NumPy 数组 | np.array() 创建,向量化运算 |
| ✅ 数组创建 | zeros、ones、arange、random |
| ✅ 形状操作 | shape、ndim、size、多维索引 |
| ✅ 广播机制 | 不同形状数组自动扩展对齐 |
| ✅ 统计聚合 | mean、sum、std、axis 参数 |
| ✅ 图像思维 | 图像 = 数字矩阵 |
🚀 下一章预告:有了 NumPy,你就能高效处理数值了。但现实世界的数据往往带有标签、有关联——接下来用 Pandas 玩转结构化数据!
18.9 📚 参考资料¶
| 资源 | 链接 | 说明 |
|---|---|---|
| NumPy 官方文档 | numpy | 最权威的 API 参考和用户指南 |
| NumPy 快速入门 | numpy | 官方入门教程,30 分钟上手 |
| Python 科学计算 (Scipy Lecture Notes) | scipy-lectures.org | 涵盖 NumPy、Matplotlib、Scipy 的系统教程 |
| NumPy 图解教程 (Jay Alammar) | jalammar | 用可视化方式理解 NumPy 数组运算 |
| Real Python — NumPy 教程 | realpython | 面向初学者的实战教程系列 |
本章内容基于 NumPy 官方文档 改编,遵循 BSD License 许可。