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 对象的显示方式。
- 参数:
- precisionint 或 None,可选
浮点数输出的精度位数(默认 8)。如果 floatmode 不是 fixed,则可以是 None,以便打印足够多的位数来唯一地指定值。
- thresholdint,可选
触发摘要而不是完整 repr 的数组元素总数(默认 1000)。要始终使用完整的 repr 而不进行摘要,请传递
sys.maxsize。- edgeitemsint,可选
每个维度开头和结尾的摘要中的数组项数(默认 3)。
- linewidthint,可选
用于插入换行的每行字符数(默认 75)。
- suppressbool,可选
如果为 True,则始终使用定点表示法打印浮点数,在这种情况下,当前精度下等于零的数字将打印为零。如果为 False,则当最小数字的绝对值 < 1e-4 或最大绝对值与最小绝对值的比率 > 1e3 时,使用科学计数法。默认值为 False。
- nanstrstr,可选
浮点数“非数字”(not-a-number)的字符串表示形式(默认 nan)。
- infstrstr,可选
浮点数“无穷大”(infinity)的字符串表示形式(默认 inf)。
- sign字符串,可以是 ‘-’、‘+’ 或 ‘ ‘,可选
控制浮点类型符号的打印。如果为 ‘+’,则始终打印正数的符号。如果为 ‘ ‘,则在正数的符号位置始终打印一个空格(空白字符)。如果为 ‘-’,则省略正数的符号字符。(默认 ‘-‘)
版本 2.0 中已更改: sign 参数现在可以是整数类型,以前只能是浮点类型。
- formatter可调用对象的字典,可选
如果不是 None,则键应指示各自格式化函数适用的类型。可调用对象应返回一个字符串。未指定(通过相应键)的类型由默认格式化程序处理。可以设置格式化程序的单个类型包括:
‘bool’
‘int’
‘timedelta’:一个
numpy.timedelta64‘datetime’:一个
numpy.datetime64‘float’
‘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 兼容打印模式。这通过不插入字段分隔符(逗号)和冒号后面的空格来近似 1.21 版本 numpy 对复杂结构化 dtypes 的打印输出。如果设置为
'1.25',则近似 1.25 的打印,主要意味着数值标量将不带其类型信息打印,例如打印为3.0而不是np.float64(3.0)。如果设置为
'2.1',则在摘要数组时(即,用...替换多个元素)不提供形状信息。如果设置为
'2.2',则打印np.float16和np.float32类型时,向科学计数法过渡可能会更晚或根本不会发生,对于较大的值。如果设置为 False,则禁用兼容模式。
对于未来兼容性,将忽略无法识别的字符串并发出警告。
版本 1.22.0 中已更改。
版本 2.2 中已更改。
- override_repr: callable,可选
如果设置,则将使用传入的函数来生成数组的 repr。其他选项将被忽略。
备注
formatter始终会通过调用set_printoptions来重置。使用
printoptions作为上下文管理器来临时设置这些值。这些打印选项仅适用于 NumPy ndarray,不适用于标量。
并发注意事项: 请参阅 文本格式化选项
示例
浮点数精度可以设置
>>> 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], shape=(10,))
可以抑制小结果
>>> 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. ], shape=(10,))