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 对象的显示方式.

参数:
precision整数或无,可选

浮点输出精度的位数(默认 8).如果 floatmode 不是 fixed,则可以为 None,以打印出必要数量的位数来唯一指定该值.

thresholdint, 可选

触发汇总而不是完整 repr 的数组元素总数(默认 1000).要始终使用完整 repr 而不进行汇总,请传递 sys.maxsize.

edgeitemsint, 可选

每个维度开始和结束时摘要中的数组项数(默认3).

linewidthint, 可选

每行字符数,用于插入换行符(默认75).

suppress布尔值, 可选

如果为 True,总是使用定点表示法打印浮点数,在这种情况下,当前精度下等于零的数字将打印为零.如果为 False,则当最小数字的绝对值 < 1e-4 或最大绝对值与最小值的比率 > 1e3 时,使用科学计数法.默认值为 False.

nanstrstr, 可选

浮点数非数字的字符串表示(默认 nan).

infstrstr, 可选

浮点无穷大的字符串表示(默认 inf).

sign字符串,可以是 ‘-’, ‘+’, 或 ‘ ‘, 可选

控制浮点类型的符号打印.如果为 ‘+’,始终打印正数值的符号.如果为 ‘ ‘,始终在正数值的符号位置打印一个空格(空白字符).如果为 ‘-‘,省略正数值的符号字符.(默认 ‘-’)

在 2.0 版本发生变更: sign 参数现在可以是整数类型,之前类型是浮点类型.

formatter可调用对象的字典,可选

如果不是 None,键应该指示各自的格式化函数适用的类型.可调用对象应返回一个字符串.未指定(通过其相应的键)的类型由默认格式化程序处理.可以为其设置格式化程序的个别类型包括:

  • ‘bool’

  • ‘int’

  • ‘timedelta’ : 一个 numpy.timedelta64

  • ‘datetime’ : 一个 numpy.datetime64

  • ‘浮动’

  • ‘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 个小数位

    但如果数组中的每个元素都可以用相同数量的较少位数唯一表示,则对所有元素使用这么多位数.

legacy : 字符串或 False,可选字符串或

如果设置为字符串 '1.13' ,则启用 1.13 遗留打印模式.这通过在浮点数的符号位置包含一个空格和不同的 0d 数组行为来近似 numpy 1.13 的打印输出.这还会启用 1.21 遗留打印模式(如下所述).

如果设置为字符串 '1.21' ,则启用 1.21 遗留打印模式.这通过不在分隔字段和冒号后的逗号后插入空格来近似 numpy 1.21 对复杂结构化 dtypes 的打印输出.

如果设置为 '1.25' 近似于打印 1.25,这主要意味着数值标量在没有类型信息的情况下打印,例如作为 3.0 而不是 np.float64(3.0).

如果设置为 False,则禁用传统模式.

未识别的字符串将被忽略,并带有警告以确保向前兼容.

在 1.14.0 版本加入.

在 1.22.0 版本发生变更.

在 2.0 版本发生变更.

override_repr: callable, optional

如果设置了一个传递的函数,将用于生成数组的 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])

小结果可以被抑制:

>>> 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.  ])