2016-03-22 60 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