规则 2:如果两个数组形状在任何某个维度上存在不相同,那么两个数组中形状为 1 的维度都会广播到另一个数组对应唯独的尺寸,最终双方都具有相同的形状。...此时两个数组的形状变为:
M.shape -> (2, 3)
a.shape -> (1, 3)
依据规则 2,我们可以看到双方在第一维度上不相同,因此我们将第一维度具有长度 1 的a的第一维度扩展为..., 1))
b = np.arange(3)
开始时双方的形状为:
a.shape = (3, 1)
b.shape = (3,)
由规则 1 我们需要将数组b扩增第一维度,长度为 1:
a.shape...3)
由规则 2 我们需要将数组a的第一维度扩展为 3 才能与数组M保持一致,除此之外双方都没有长度为 1 的维度了:
M.shape -> (3, 2)
a.shape -> (3, 3)
观察得到的形状..., True, False, True, True])
在数组间使用or操作时,等同于要求 Python 把数组当成一个整体来求出最终的真值或假值,这样的值是不存在的,因此会导致一个错误:
A