axis=-1的理解
二维数组ba,三维数组cba,多维数组n...ba,他们的axis=-1,这个维度都是指向a
axis=-1 的通用性
无论 NumPy 数组有多少个维度,axis=-1 总是指向最后一个维度。
| 数组类型 | 形状(Shape) | 维度索引 | axis=-1 指向 |
|---|---|---|---|
| 一维数组 | (a,) |
axis=0 或 axis=-1 |
a |
| 二维数组 | (b, a) |
axis=1 或 axis=-1 |
a |
| 三维数组 | (c, b, a) |
axis=2 或 axis=-1 |
a |
| 多维数组 | (n, ..., b, a) |
最后一个索引 $\rightarrow$ axis=-1 |
a |
为什么这个特性很重要?
在机器学习和深度学习中,这种设计非常方便,因为它让你的代码具有通用性和健壮性:
- 特征/类别维度: 通常情况下,我们都会将特征(Feature)或类别(Class)放在数组的最后一个维度。
- 例如,你的手写数字识别:输入数据是
(BatchSize, 784),784是特征数。Softmax 输出是(BatchSize, 10),10是类别数。
- 例如,你的手写数字识别:输入数据是
- 代码复用: 当你对特征或类别进行操作(例如,Softmax 归一化、求最大值
np.argmax、求平均np.mean)时,你只需要固定使用axis=-1。这样,无论你输入的是单个样本(形状可能是(784,))还是一个批次的样本(形状是(N, 784)),你的函数都能正确执行,无需修改代码。

浙公网安备 33010602011771号