← 课程库
地基 · 数学与工程数值计算地基代码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) 的数组相加,结果形状是:
// 带走一句话

张量=多维数组;用向量化和广播「整块算」,别写逐元素循环。

独立练习

做到这些,才算完成本节

  1. 在本地运行代码,打印每个关键张量的 shape。
  2. 关闭示例后从空文件重写核心部分,并补一个异常或边界测试。
学习记录

记录本节阅读进度

建议先独立回答自测。读完记录不等于已经掌握。

继续下一课
← 上一课
环境与工具链:把摊子搭起来
下一课 →
线性代数速修:矩阵乘、范数、正交

学完不要急着赶进度:去练习自测,或完成对应的阶段实验