a + b
array([[0, 1, 2],
[1, 2, 3],
[2, 3, 4]])
前面例子中我们只对其中一个数组进行了扩展或者广播,上例中我们需要对a和b两个数组都进行广播才能满足双方是相同的形状...规则 2:如果两个数组形状在任何某个维度上存在不相同,那么两个数组中形状为 1 的维度都会广播到另一个数组对应唯独的尺寸,最终双方都具有相同的形状。...此时两个数组的形状变为:
M.shape -> (2, 3)
a.shape -> (1, 3)
依据规则 2,我们可以看到双方在第一维度上不相同,因此我们将第一维度具有长度 1 的a的第一维度扩展为...此时双方的形状变为:
M.shape -> (2, 3)
a.shape -> (2, 3)
经过变换之后,双方形状一致,可以进行加法运算了,我们可以预知最终结果的形状为(2, 3):
M + a
array...3)
由规则 2 我们需要将数组a的第一维度扩展为 3 才能与数组M保持一致,除此之外双方都没有长度为 1 的维度了:
M.shape -> (3, 2)
a.shape -> (3, 3)
观察得到的形状