当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。