[英]Inconsistent Precision printing numpy arrays
我打印了這兩個 arrays。
array([[-7.00e+00, -9.00e+00, 0.00e+00, 1.60e+01, 0.00e+00, -9.00e+00, -7.00e+00, -1.20e+01],
[-6.00e+00, -1.70e+01, 1.11e-15, 2.00e+01, 1.33e-15, -1.70e+01, -6.00e+00, 2.00e+00],
[-3.00e+00, -1.90e+01, 1.00e+01, 2.80e+01, 1.00e+01, -1.90e+01, -3.00e+00, 2.40e+01],
[ 6.00e+00, 0.00e+00, 1.40e+01, 1.60e+01, 1.40e+01, 1.78e-15, 6.00e+00, 2.40e+01],
[-3.00e+00, -1.90e+01, 1.00e+01, 2.80e+01, 1.00e+01, -1.90e+01, -3.00e+00, 2.40e+01],
[-6.00e+00, -1.70e+01, -1.11e-15, 2.00e+01, 4.44e-16, -1.70e+01, -6.00e+00, 2.00e+00],
[-7.00e+00, -9.00e+00, 0.00e+00, 1.60e+01, 8.88e-16, -9.00e+00, -7.00e+00, -1.20e+01],
[-1.40e+01, -2.20e+01, 6.00e+00, 3.20e+01, 6.00e+00, -2.20e+01, -1.40e+01, -4.00e+00]])
array([[ -9.96, -29.6 , -7.68, 47.32],
[-11.7 , -17.86, -10.47, 25.97],
[ 28.45, -22.42, -9.69, 46.16],
[ 42.94, -2.22, 11.06, 40.59]])
記錄它們的類型時,它們都是 float64。 我想知道為什么一個是科學記數法而不是另一個。 另外,如何將其設置為始終具有第二種表示法。
我的腳本頂部有這個
np.set_printoptions(linewidth=240, precision=2)
但顯然它並不適用於所有情況。
第一個數組的一些元素很小,比如這個:
-1.11e-15
e-15
意思是“乘以 10 的 -15 次方”。 這需要大量的數字才能以普通的位置表示法顯示,因此 NumPy 切換到科學計數法。 為了布局一致性,這適用於整個陣列。
您可以通過將suppress
打印選項設置為True
來讓 NumPy 的數組打印邏輯將這些值視為(適當簽名的)零:
numpy.set_printoptions(suppress=True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.