Numpy';s点积不关联

Numpy';s点积不关联,numpy,Numpy,在以下三种情况下计算点积会对我的特定复杂NumPy数组集产生不同的结果,但对具有相同大小和数据范围的第二组随机矩阵不会产生不同的结果 a.dot(b).dot(c).dot(d) a.dot(b.dot(c).dot(d)) a.dot(b.dot(c)).dot(d) 产生 [[ 2.23903250e-08 -1.29444679e-07j]] [[ 6.09565057e-07 +2.09702260e-07j]] [[ 3.40257465e-07 -1.20382176e-07

在以下三种情况下计算
积会对我的特定复杂NumPy数组集产生不同的结果,但对具有相同大小和数据范围的第二组随机矩阵不会产生不同的结果

a.dot(b).dot(c).dot(d)
a.dot(b.dot(c).dot(d))
a.dot(b.dot(c)).dot(d)
产生

[[  2.23903250e-08 -1.29444679e-07j]]
[[  6.09565057e-07 +2.09702260e-07j]]
[[  3.40257465e-07 -1.20382176e-07j]]

这些阵列相当大,其中一个约有1400万。条目。尺寸可能是个问题吗?如果是这样,为什么numpy不提出警告?

直到舍入误差,这些结果都是相同的——它们都是零矩阵。舍入误差的差异是正常的。

我会将数组作为
.npz
上传,但是文件是~200 mb largeOk,请查看问题。在acousitcs域中,10^-7有时不是零。我没有将这些结果与数组中的值的大小进行比较。但是为什么这些计算会对大小相同、值范围相同的随机数组给出完全相同的结果呢?@fhchl:很可能,它们不会,它们看起来就是这样,因为舍入误差比输出值小得多。如果我用
=