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, override_repr=None)[原始碼]#

設定列印選項。

這些選項決定了浮點數、陣列和其他 NumPy 物件的顯示方式。

參數:
precisionint 或 None,選填

浮點數輸出的精度位數 (預設為 8)。如果 floatmode 不是 fixed,則可以為 None,以列印足夠的位數來唯一指定值。

thresholdint,選填

觸發摘要而非完整 repr 的陣列元素總數 (預設為 1000)。若要始終使用完整 repr 而不進行摘要,請傳遞 sys.maxsize

edgeitemsint,選填

摘要中每個維度的開頭和結尾的陣列項目數 (預設為 3)。

linewidthint,選填

每行字元數,用於插入換行符 (預設為 75)。

suppressbool,選填

如果為 True,則始終使用定點記號列印浮點數,在這種情況下,目前精度下等於零的數字將列印為零。如果為 False,則當最小數字的絕對值 < 1e-4 或最大絕對值與最小值的比率 > 1e3 時,將使用科學記號。預設值為 False。

nanstrstr,選填

浮點數非數字 (not-a-number) 的字串表示法 (預設為 nan)。

infstrstr,選填

浮點數無限大的字串表示法 (預設為 inf)。

signstring,可以是 ‘-’、‘+’ 或 ‘ ‘,選填

控制浮點數類型的符號列印。如果為 ‘+’,則始終列印正值的符號。如果為 ‘ ‘,則始終在正值的符號位置列印空格 (空白字元)。如果為 ‘-’,則省略正值的符號字元。(預設為 ‘-’)

在 2.0 版本中變更:sign 參數現在可以是整數類型,以前的類型是浮點數類型。

formattercallable 的 dict,選填

如果不是 None,則鍵應指示各自的格式化函數應用於的類型。Callable 應傳回字串。未指定類型 (透過其對應的鍵) 由預設格式化程式處理。可以設定格式化程式的個別類型為

  • ‘bool’

  • ‘int’

  • ‘timedelta’ : numpy.timedelta64

  • ‘datetime’ : numpy.datetime64

  • ‘float’

  • ‘longfloat’ : 128 位元浮點數

  • ‘complexfloat’

  • ‘longcomplexfloat’ : 由兩個 128 位元浮點數組成

  • ‘numpystr’ : 類型 numpy.bytes_numpy.str_

  • ‘object’ : np.object_ 陣列

可用於一次設定一組類型的其他鍵為

  • ‘all’ : 設定所有類型

  • ‘int_kind’ : 設定 ‘int’

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

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

  • ‘str_kind’ : 設定 ‘numpystr’

floatmodestr,選填

控制 precision 選項對於浮點數類型的解釋。可以採用以下值 (預設為 maxprec_equal)

  • ‘fixed’: 始終準確列印 precision 個小數位數,

    即使這樣列印的位數會多於或少於唯一指定值所需的位數。

  • ‘unique’: 列印唯一表示每個值所需的最小小數位數。

    不同的元素可能具有不同數量的位數。precision 選項的值將被忽略。

  • ‘maxprec’: 最多列印 precision 個小數位數,但如果

    可以使用較少位數唯一表示元素,則僅以那麼多位數列印。

  • ‘maxprec_equal’: 最多列印 precision 個小數位數,

    但如果陣列中的每個元素都可以用相同數量的較少位數唯一表示,則對所有元素使用那麼多位數。

legacystring 或 False,選填

如果設定為字串 '1.13',則啟用 1.13 舊版列印模式。這透過在浮點數的符號位置包含空格以及 0d 陣列的不同行為來近似 numpy 1.13 列印輸出。這也啟用了 1.21 舊版列印模式 (如下所述)。

如果設定為字串 '1.21',則啟用 1.21 舊版列印模式。這透過不在分隔欄位的逗號後和冒號後插入空格來近似複合結構化 dtype 的 numpy 1.21 列印輸出。

如果設定為 '1.25',則近似於 1.25 的列印,這主要表示數值純量在列印時不帶有其類型資訊,例如以 3.0 而不是 np.float64(3.0) 列印。

如果設定為 '2.1',則在摘要陣列 (即,多個元素被 ... 取代) 時,不提供形狀資訊。

如果設定為 False,則停用舊版模式。

無法辨識的字串將被忽略,並發出警告以實現向前相容性。

在 1.22.0 版本中變更。

在 2.2 版本中變更。

override_repr: callable,選填

如果設定,則傳遞的函數將用於產生陣列的 repr。其他選項將被忽略。

註解

formatter 始終會透過呼叫 set_printoptions 重新設定。

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

範例

可以設定浮點數精度

>>> import numpy as np
>>> 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], shape=(10,))

可以抑制小結果

>>> 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.  ], shape=(10,))