簡體   English   中英

打印精度不一致 numpy arrays

[英]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.

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