NumPy广播是联合的吗?
假设我有三个NumPy广播是联合的吗?,numpy,array-broadcasting,Numpy,Array Broadcasting,假设我有三个numpy.ndarray的a,b,c,这样当我将它们相乘时,就会发生广播 结果是否取决于乘法的顺序 换句话说,是否存在a、b、c,以便: (a * b) * c != a * (b * c) 是的,它是关联的。说 结果的秩(维数)是输入秩的max(如果需要,使用左填充1) 每个轴上的尺寸是该轴上尺寸的max(前提是max不涉及两个都大于1的不同数字,在这种情况下会引发错误) 函数max是关联的:max(a,max(b,c))=max(max(a,b,c)。因此,无论括号是什么
numpy.ndarray
的a,b,c
,这样当我将它们相乘时,就会发生广播
结果是否取决于乘法的顺序
换句话说,是否存在a、b、c,以便:
(a * b) * c != a * (b * c)
是的,它是关联的。说
- 结果的秩(维数)是输入秩的
(如果需要,使用左填充max
)李>1
- 每个轴上的尺寸是该轴上尺寸的
(前提是max
不涉及两个都大于1的不同数字,在这种情况下会引发错误)李>max
函数
max
是关联的:max(a,max(b,c))=max(max(a,b,c)
。因此,无论括号是什么,输出的形状都是相同的。此外,抛出“操作数无法广播”错误的条件相当于:对于每个轴,大于1的所有维度都相等;这个条件根本不需要括号 我还没有看到广播是关联的正式声明或证据,但如果不是,它将使乘法的关联性无效,并引发错误报告等问题。这证明了输出形状是关联的。输出的元素是什么?我认为,因为你只能沿着大小为“1”的轴进行广播,这意味着广播一次只能在一个轴上运行,这使得它独立于轴的顺序,对吗?