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

参数
precisionint或none,可选

浮点输出的精度位数(默认为8)。如果 floatmode 不是 fixed ,根据需要打印尽可能多的数字以唯一地指定值。

threshold可选的

触发摘要而不是完整repr的数组元素总数(默认值1000)。要始终使用完整的repr而不进行摘要,请通过 sys.maxsize .

edgeitems可选的

在每个维度的开始和结束处汇总的数组项数(默认值为3)。

linewidth可选的

用于插入换行符的每行字符数(默认值为75)。

suppress可选的布尔

如果为真,则始终使用定点表示法打印浮点数字,在这种情况下,当前精度中等于零的数字将打印为零。如果为假,则当最小数字的绝对值小于1e-4或最大绝对值与最小值之比大于1e3时,使用科学记数法。默认值为假。

nanstr可选的STR

浮点非数字的字符串表示形式(默认NaN)。

infstr可选的STR

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

sign字符串,可以是“-”、“+”或“”,可选

控制浮点类型符号的打印。如果“+”,则始终打印正值的符号。如果“”,则始终在正值的符号位置打印空格(空白字符)。如果“-”,则省略正值的符号字符。(默认值)

formatter可调用的dict,可选

如果不是“无”,则键应指示相应格式化函数适用的类型。可调用文件应返回字符串。未指定的类型(通过其相应的键)由默认格式化程序处理。可为其设置格式化程序的单个类型为:

  • “布尔”

  • “int”

  • “时间增量”:A numpy.timedelta64

  • “日期时间”:A numpy.datetime64

  • “飘浮”

  • “longfloat”:128位浮点

  • “复合浮标”

  • “longcomplexfloat”:由两个128位浮点组成

  • “numpystr”:类型 numpy.string_numpy.unicode_

  • “对象”: np.object_ 数组

可用于同时设置一组类型的其他键包括:

  • “all”:设置所有类型

  • “int_kind”:设置“int”

  • “float_kind”:设置“float”和“longfloat”

  • “复杂类型”:设置“complexfloat”和“longcomplexfloat”

  • “stru kind”:设置“numpstr”

floatmode可选的STR

控制对 precision 浮点类型的选项。可以采用以下值(默认maxprecïu等于):

  • “固定”:始终准确打印 precision 小数位数,

    即使打印的数字多于或少于唯一指定值所需的数字。

  • “唯一”:打印所需的最小小数位数

    唯一地表示每个值。不同的元素可以有不同的位数。的值 precision 选项被忽略。

  • “maxprec”:最多打印 precision 小数位数,但如果

    一个元素可以用更少的数字唯一地表示,只需用那么多数字来打印它。

  • “maxprec_equal”:最多打印 precision 小数位数,

    但是,如果数组中的每一个元素都可以用相等的更少的数字唯一地表示,那么对所有元素都使用这些数字。

遗产 字符串或 False 可选字符串或

如果设置为字符串 '1.13' 启用1.13传统打印模式。这近似于numpy 1.13打印输出,方法是在浮点数的符号位置包含一个空格,以及0d数组的不同行为。如果设置为 False ,禁用旧模式。无法识别的字符串将被忽略,并发出向前兼容警告。

1.14.0 新版功能.

笔记

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