结果一样,虽然两个数组的维数不一样,但是 Numpy 检测到 b 的维度与 a 的维度匹配,所以将 b 扩展为之前的形式,得到相同的形状。

对于更高维度,这样的扩展依然有效。

如果我们再将 a 变成一个列向量呢?

可以看到,虽然两者的维度并不相同,但是Numpy还是根据两者的维度,自动将它们进行扩展然后进行计算。

匹配会从最后一维开始进行,直到某一个的维度全部匹配为止,因此对于以下情况,Numpy 都会进行相应的匹配:

匹配成功后,Numpy 会进行运算得到相应的结果。

当然,如果相应的维度不匹配,那么Numpy会报错:

将 a 转换为列向量,还是可以计算出结果:

先形成一个 21 乘 21 的网格,再计算网格到原点的距离: