首頁 >後端開發 >Python教學 >如何在沒有科學記數法的情況下以指定的精度漂亮地列印 NumPy 數組?

如何在沒有科學記數法的情況下以指定的精度漂亮地列印 NumPy 數組?

DDD
DDD原創
2024-12-08 11:41:111066瀏覽

How to Pretty-Print NumPy Arrays Without Scientific Notation and with Specified Precision?

在沒有科學記數法和給定精度的情況下漂亮地打印NumPy 數組

打印浮點數的NumPy 數組時,通常會產生幾個小數並且使用科學格式,使其難以閱讀,尤其是對於低維數組。由於 NumPy 數組需要作為字串列印,這就提出了尋找解決方案的問題。

使用 numpy.set_printoptions 允許您為輸出設定所需的精確度。透過設定此選項,您可以控制顯示的小數位數。

為了進一步提高可讀性,您可以使用抑制選項來停用科學記數法。這可確保小數字以標準表示法顯示。

import numpy as np

x = np.random.random(10)
print(x)
# [ 0.07837821  0.48002108  0.41274116  0.82993414  0.77610352  0.1023732
#   0.51303098  0.4617183   0.33487207  0.71162095]

np.set_printoptions(precision=3)
print(x)
# [ 0.078  0.48   0.413  0.83   0.776  0.102  0.513  0.462  0.335  0.712]
y = np.array([1.5e-10, 1.5, 1500])
print(y)
# [  1.500e-10   1.500e+00   1.500e+03]

np.set_printoptions(suppress=True)
print(y)
# [    0.      1.5  1500. ]

如果您使用的是 NumPy 版本 1.15.0 或更高版本,您可以利用 numpy.printoptions 上下文管理器來在地化列印應用程式選項。在上下文中,應用所需的列印設置,但在外部恢復為預設值。

x = np.random.random(10)
with np.printoptions(precision=3, suppress=True):
    print(x)
    # [ 0.073  0.461  0.689  0.754  0.624  0.901  0.049  0.582  0.557  0.348]

為了防止從浮點數末尾刪除零,您可以使用 np.set_printoptions 中的格式化程式參數。此參數可讓您為每種資料類型指定格式函數。

np.set_printoptions(formatter={'float': '{: 0.3f}'.format})
print(x)
# Output: [ 0.078  0.480  0.413  0.830  0.776  0.102  0.513  0.462  0.335  0.712]

以上是如何在沒有科學記數法的情況下以指定的精度漂亮地列印 NumPy 數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn