numpy.set_printoptions

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.set_printoptions.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

numpy.set_printoptions(precision=None, threshold=None, edgeitems=None, linewidth=None, suppress=None, nanstr=None, infstr=None, formatter=None)[source]

设置打印选项。

这些选项确定显示浮点数,数组和其他NumPy对象的方式。

参数:

precision:int,可选

浮点数输出的精度位数(默认为8)。

阈值:int,可选

触发汇总而不是完全repr的数组元素的总数(默认为1000)。

edgeitems:int,可选

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

linewidth:int,可选

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

suppress:bool,可选

是否使用科学计数法抑制小浮点值的打印(默认值为False)。

nanstr:str,可选

浮点数的字符串表示不是数字(默认为nan)。

infstr:str,可选

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

格式化程序:可调用的dict,可选

如果不是无,键应该指示相应格式化功能应用的类型。Callables应该返回一个字符串。未指定的类型(通过其相应的键)由默认格式化程序处理。可以设置格式化程序的单个类型有:

- 'bool'
- 'int'
- 'timedelta' : a `numpy.timedelta64`
- 'datetime' : a `numpy.datetime64`
- 'float'
- 'longfloat' : 128-bit floats
- 'complexfloat'
- 'longcomplexfloat' : composed of two 128-bit floats
- 'numpy_str' : types `numpy.string_` and `numpy.unicode_`
- 'str' : all other strings

可用于一次设置一组类型的其他键有:

- 'all' : sets all types
- 'int_kind' : sets 'int'
- 'float_kind' : sets 'float' and 'longfloat'
- 'complex_kind' : sets 'complexfloat' and 'longcomplexfloat'
- 'str_kind' : sets 'str' and 'numpystr'

笔记

formatter始终通过调用set_printoptions重置。

例子

浮点精度可设置:

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

长数组可概括为:

>>> np.set_printoptions(threshold=5)
>>> print(np.arange(10))
[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)