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