2016-03-22 31 views
-1

计算的dot产物在以下三种情况下产生用于我的特定的一组复杂的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-07j]] 

该阵列是与具有大约14 MIO一个相当大。条目。大小可能是一个问题?如果是这样,为什么numpy没有提出警告?

+0

我会上传数组作为'.npz',但该文件是〜200 MB大 – fhchl

回答

2

最多舍入误差,这些结果是相同的 - 他们都是零点矩阵。舍入误差的差异是正常的。

+0

好了,看到问题。在acousitcs域中,10^-7有时不为零。我没有将这些结果与数组中值的大小进行比较。 – fhchl

+0

但是为什么这些计算结果对于具有相同值范围的相同大小的随机数组给出完全相同的结果? – fhchl

+0

@fhchl:最有可能的是,他们没有,他们看起来像他们做的,因为舍入误差比输出值小得多。 – user2357112