jax.numpy.set_printoptions#
- jax.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)[source]#
设置打印选项。
这些选项决定了浮点数、数组和其他 NumPy 对象的显示方式。
- 参数:
precision (int 或 None, 可选) – 浮点数输出的精度位数(默认为 8)。如果 floatmode 不是 fixed,则可以为 None,以便打印尽可能多的位数来唯一指定该值。
threshold (int, 可选) – 触发摘要而不是完整 repr 的数组元素总数(默认为 1000)。要始终使用完整 repr 而不进行摘要,请传递 sys.maxsize。
edgeitems (int, 可选) – 每个维度开头和结尾的摘要中的数组项数(默认为 3)。
linewidth (int, 可选) – 用于插入换行的每行字符数(默认为 75)。
suppress (bool, 可选) – 如果为 True,则始终使用定点表示法打印浮点数,在这种情况下,当前精度中等于零的数字将打印为零。如果为 False,则当最小数字的绝对值 < 1e-4 或最大绝对值与最小值的比率 > 1e3 时,将使用科学计数法。默认值为 False。
nanstr (str, 可选) – 浮点数非数字的字符串表示形式(默认为 nan)。
infstr (str, 可选) – 浮点数无穷大的字符串表示形式(默认为 inf)。
sign (string, 可以是 '-', '+', 或 ' ', 可选) –
控制浮点类型的符号打印。如果为“+”,则始终打印正值的符号。如果为“ ”,则始终在正值的符号位置打印空格(空白字符)。如果为“-”,则省略正值的符号字符。(默认为“ -”)
在 2.0 版本中更改:sign 参数现在可以是整数类型,以前的类型是浮点类型。
formatter (dict of callables, 可选) –
如果不是 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”
floatmode (str, 可选) –
控制浮点类型的 precision 选项的解释。可以采用以下值(默认为 maxprec_equal)
- “fixed”:始终打印正好 precision 个小数位,
即使这将打印比唯一指定该值所需更多或更少的位数。
- “unique”:打印唯一表示每个值所需的最少小数位数。
不同的元素可能具有不同的位数。precision 选项的值将被忽略。
- “maxprec”:最多打印 precision 个小数位,但如果
元素可以用更少的位数唯一表示,则只打印这么多位数。
- “maxprec_equal”:最多打印 precision 个小数位,
但是如果数组中的每个元素都可以用相同数量的更少位数唯一表示,则对所有元素使用那么多位数。
legacy (string 或 False, 可选) –
如果设置为字符串
'1.13'
,则启用 1.13 旧式打印模式。这通过在浮点数的符号位置包含空格以及对 0d 数组的不同行为来近似 numpy 1.13 的打印输出。这也启用了 1.21 旧式打印模式(如下所述)。如果设置为字符串
'1.21'
,则启用 1.21 旧式打印模式。这通过不在分隔字段的逗号之后和冒号之后插入空格来近似复杂结构化 dtype 的 numpy 1.21 打印输出。如果设置为
'1.25'
,则近似 1.25 的打印,这主要意味着数字标量在打印时不包含其类型信息,例如3.0
而不是np.float64(3.0)
。如果设置为
'2.1'
,则在汇总数组时(即,多个元素被...
替换)不给出形状信息。如果设置为 False,则禁用旧式模式。
无法识别的字符串将被忽略,并发出警告以实现向前兼容性。
在 1.22.0 版本中更改。
在 2.2 版本中更改。
override_repr (callable, 可选) – 如果设置,则将使用传递的函数来生成数组的 repr。其他选项将被忽略。
另请参见
get_printoptions
、printoptions
、array2string
说明
对 set_printoptions 的调用始终会重置 formatter。
使用 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], 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,))