當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python numpy set_printoptions用法及代碼示例

本文簡要介紹 python 語言中 numpy.set_printoptions 的用法。

用法:

numpy.set_printoptions(precision=None, threshold=None, edgeitems=None, linewidth=None, suppress=None, nanstr=None, infstr=None, formatter=None, sign=None, floatmode=None, *, legacy=None)

設置打印選項。

這些選項確定浮點數、數組和其他NumPy 對象的顯示方式。

參數

precision int 或無,可選

浮點輸出的精度位數(默認為 8)。如果 floatmode 不固定,則可能為 None ,以打印盡可能多的數字以唯一指定值。

threshold 整數,可選

觸發匯總而不是完整 repr 的數組元素總數(默認 1000)。要始終使用完整的 repr 而不進行匯總,請傳遞 sys.maxsize

edgeitems 整數,可選

每個維度開始和結束時匯總的數組項數(默認 3)。

linewidth 整數,可選

用於插入換行符的每行字符數(默認為 75)。

suppress 布爾型,可選

如果為 True,則始終使用定點表示法打印浮點數,在這種情況下,當前精度中等於零的數字將打印為零。如果為 False,則當最小數的絕對值 < 1e-4 或最大絕對值與最小值之比 > 1e3 時使用科學計數法。默認值為假。

nanstr str,可選

浮點 not-a-number 的字符串表示形式(默認為 nan)。

infstr str,可選

浮點無窮大的字符串表示(默認 inf)。

sign 字符串,“-”、“+”或“”,可選

控製浮點類型符號的打印。如果為“+”,則始終打印正值的符號。如果是‘’,總是在正值的符號位置打印一個空格(空白字符)。如果為“-”,則省略正值的符號字符。 (默認 '-')

formatter 可調用的字典,可選

如果不是 None,則鍵應指示相應格式化函數適用的類型。可調用對象應返回一個字符串。未指定的類型(通過其相應的鍵)由默認格式化程序處理。可以設置格式化程序的各個類型是:

可用於一次設置一組類型的其他鍵是:

  • ‘all’:設置所有類型

  • ‘int_kind’:設置‘int’

  • ‘float_kind’:設置‘float’和‘longfloat’

  • ‘complex_kind’:設置‘complexfloat’和‘longcomplexfloat’

  • ‘str_kind’:設置‘numpystr’

floatmode str,可選

控製浮點類型的精度選項的解釋。可以采用以下值(默認 maxprec_equal):

  • ‘fixed’:始終準確打印精確小數位數,

    即使這會打印出比唯一指定值所需的更多或更少的數字。

  • ‘unique’:打印所需的最小小數位數

    唯一地表示每個值。不同的元素可能有不同的位數。精度選項的值被忽略。

  • ‘maxprec’:最多打印精確小數位數,但如果

    一個元素可以用更少的數字唯一表示,隻有用那麽多數字打印它。

  • ‘maxprec_equal’:最多打印精確小數位數,

    但是如果數組中的每個元素都可以用相同數量的更少數字來唯一表示,那麽對所有元素使用那麽多數字。

legacy 字符串或False, 可選的

如果設置為字符串“1.13”,則啟用 1.13 舊版打印模式。這通過在浮點數的符號位置包含一個空格和 0d 數組的不同行為來近似 numpy 1.13 打印輸出。這也啟用了 1.21 舊版打印模式(如下所述)。

如果設置為字符串“1.21”,則啟用 1.21 舊版打印模式。通過不在分隔字段的逗號之後和冒號之後插入空格,這近似於複雜結構化 dtypes 的 numpy 1.21 打印輸出。

如果設置為 False,則禁用傳統模式。

無法識別的字符串將被忽略,並發出前向兼容性警告。

注意

formatter 始終通過調用 set_printoptions 進行重置。

使用 printoptions 作為上下文管理器來臨時設置值。

例子

浮點精度可以設置:

>>> np.set_printoptions(precision=4)
>>> np.array([1.123456789])
[1.1235]

長數組可以總結為:

>>> np.set_printoptions(threshold=5)
>>> np.arange(10)
array([0, 1, 2, ..., 7, 8, 9])

可以抑製小的結果:

>>> eps = np.finfo(float).eps
>>> x = np.arange(4.)
>>> x**2 - (x + eps)**2
array([-4.9304e-32, -4.4409e-16,  0.0000e+00,  0.0000e+00])
>>> np.set_printoptions(suppress=True)
>>> x**2 - (x + eps)**2
array([-0., -0.,  0.,  0.])

自定義格式化程序可用於根據需要顯示數組元素:

>>> np.set_printoptions(formatter={'all':lambda x: 'int: '+str(-x)})
>>> x = np.arange(3)
>>> x
array([int: 0, int: -1, int: -2])
>>> np.set_printoptions()  # formatter gets reset
>>> x
array([0, 1, 2])

要恢複默認選項,您可以使用:

>>> np.set_printoptions(edgeitems=3, infstr='inf',
... linewidth=75, nanstr='nan', precision=8,
... suppress=False, threshold=1000, formatter=None)

同樣要臨時覆蓋選項,請使用 printoptions 作為上下文管理器:

>>> with np.printoptions(precision=2, suppress=True, threshold=5):
...     np.linspace(0, 10, 10)
array([ 0.  ,  1.11,  2.22, ...,  7.78,  8.89, 10.  ])

相關用法


注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.set_printoptions。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。