Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

PyFirst

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() 创建,向量化运算
✅ 数组创建zerosonesarangerandom
✅ 形状操作shapendimsize、多维索引
✅ 广播机制不同形状数组自动扩展对齐
✅ 统计聚合meansumstdaxis 参数
✅ 图像思维图像 = 数字矩阵

🚀 下一章预告:有了 NumPy,你就能高效处理数值了。但现实世界的数据往往带有标签、有关联——接下来用 Pandas 玩转结构化数据!

18.9 📚 参考资料

资源链接说明
NumPy 官方文档numpy.org/doc/stable最权威的 API 参考和用户指南
NumPy 快速入门numpy.org/doc/stable/user/quickstart.html官方入门教程,30 分钟上手
Python 科学计算 (Scipy Lecture Notes)scipy-lectures.org涵盖 NumPy、Matplotlib、Scipy 的系统教程
NumPy 图解教程 (Jay Alammar)jalammar.github.io/visual-numpy用可视化方式理解 NumPy 数组运算
Real Python — NumPy 教程realpython.com/tutorials/numpy面向初学者的实战教程系列

本章内容基于 NumPy 官方文档 改编,遵循 BSD License 许可。