簡體   English   中英

Python numpy 數組數學顯示奇怪的結果

[英]Python numpy array math showing weird results

波紋管數組的最后一個單元格顯示錯誤的結果:

代碼:

import numpy
b=numpy.array ([[1,2,3,4],[5,6,8,16]])
b=b**b/b+1
b

結果:

array([[2.000000e+00, 3.000000e+00, 1.000000e+01, 6.500000e+01],
       [6.260000e+02, 7.777000e+03, 2.097153e+06, 1.000000e+00]])

除最后一個數字外,所有數字都是正確的。

類型是numpy.float64 正確答案是1.152921504606847e+18

有任何想法嗎?

謝謝

當您使用整數構造numpy數組時,其類型將是int32int64 ,具體取決於您的系統,而不是您期望的float64 因此,當您執行16**16時,結果會溢出,最終得到 0。

要解決此問題,請為 numpy 數組指定float64類型,如下所示:

b=numpy.array ([[1,2,3,4],[5,6,8,16]], dtype='float64')

或者,如果您願意,可以將.0添加到數組中的任何數字,以指定您要使用 float 而不是 int。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM