我是 numpy 的新手。我試圖添加兩個 numpy.float64 數字,但是,numpy 給了我一個錯誤的答案。
這是我的代碼:(a 和 b 分別由一個 numpy 陣列的平均值生成)
print(a)
print(type(a))
print(b)
print(type(b))
c = (a b)/2
print(c)
print(type(c))
這就是我得到的:
1.4617937201411304
<class 'numpy.float64'>
-1.4617937201411302
<class 'numpy.float64'>
1.1102230246251565e-16
<class 'numpy.float64'>
顯然,答案應該非常接近 0,但我得到的離 0 很遠。
我想問題是 a b 導致溢位?
但是,當我嘗試將 a 加倍時,答案是正確的:
c = (a * 2)/2
答案是:
1.4617937201411304
<class 'numpy.float64'>
-1.4617937201411302
<class 'numpy.float64'>
1.4617937201411304
<class 'numpy.float64'>
uj5u.com熱心網友回復:
你錯過e-16了列印的末尾。這意味著結果是1.1102230246251565 * 10^(-16),實際上幾乎為零。使用e(指數)列印數字是一種約定,而不是0.000000....1110
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/334202.html
下一篇:Numpy排序作業奇怪
