地基 · 数学与工程数值计算地基代码约 12 分钟
NumPy 与张量思维
向量化和广播——从「写循环」到「整块算」
学完这节你能:
- 理解「张量」就是多维数组
- 会用向量化替代 for 循环
- 看懂广播规则
深度学习里一切都是「张量」——标量是 0 维、向量 1 维、矩阵 2 维、再往上就是高维数组。核心思维是:别写循环逐个算,用整块运算一次算完(向量化),又快又简洁。
向量化 vs 循环
import numpy as np
a = np.array([1, 2, 3]); b = np.array([10, 20, 30])
# 循环(慢):
# c = [a[i] + b[i] for i in range(3)]
c = a + b # 向量化:一次算完 -> [11, 22, 33]
d = a @ b # 点积 -> 140🔑 广播(broadcasting):形状不同的数组做运算时,NumPy 自动把小的「拉伸」对齐。例如 (3,1) 的列向量加 (1,4) 的行向量,得到 (3,4) 矩阵——不用手写循环。
▪ 广播规则
从最后一维往前逐维比较;
两维相等,或其中一个是 1,就能广播;
(3,1) + (1,4) -> (3,4) ✓
(3,2) + (1,4) -> 报错 ✗(2 和 4 不兼容)
自测形状 (4,1) 与 (1,3) 的数组相加,结果形状是:
// 带走一句话
张量=多维数组;用向量化和广播「整块算」,别写逐元素循环。
独立练习
做到这些,才算完成本节
- 在本地运行代码,打印每个关键张量的 shape。
- 关闭示例后从空文件重写核心部分,并补一个异常或边界测试。
学习记录
记录本节阅读进度
建议先独立回答自测。读完记录不等于已经掌握。