NumPy广播具有关联性吗?

时间:2018-07-02 13:29:38

标签: numpy numpy-broadcasting

说我有三个numpy.ndarray的{​​{1}},这样当我将它们相乘时就会广播。

结果是否取决于乘法的顺序?

换句话说,是否存在a,b,c这样:

a,b,c

1 个答案:

答案 0 :(得分:0)

是的,它是关联的。 Broadcasting rules这样说

  • 结果的等级(维数)是输入等级的max(如果需要,使用1的左填充)。
  • 沿每个轴的尺寸是沿该轴的尺寸的max(前提是max不包含两个均大于1的不同数字,在这种情况下会引发错误)。

函数max是关联的:max(a, max(b, c)) = max(max(a, b), c)。因此,不管括号如何,输出的形状都相同。同样,抛出“不能广播操作数”错误的条件是:对于每个轴,所有大于1的尺寸都相等;此条件根本不需要括号。