jax.numpy.set_printoptions

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 or None, optional) – 浮点数输出的精度位数(默认值为 8)。如果 floatmode 不是 fixed,则可以为 None,以打印出唯一指定值的必要位数。

  • threshold (int, optional) – 触发摘要而不是完整 repr 的数组元素总数(默认值为 1000)。要始终使用完整 repr 而不进行摘要,请传递 sys.maxsize

  • edgeitems (int, optional) – 每个维度开头和结尾的摘要中数组项的数量(默认值为 3)。

  • linewidth (int, optional) – 用于插入换行的每行字符数(默认值为 75)。

  • suppress (bool, optional) – 如果为 True,则始终使用定点表示法打印浮点数,在这种情况下,当前精度下等于零的数字将打印为零。如果为 False,则当最小数字的绝对值 < 1e-4 或最大绝对值与最小值的比率 > 1e3 时使用科学计数法。默认值为 False。

  • nanstr (str, optional) – 浮点数非数字的字符串表示(默认值为 nan)。

  • infstr (str, optional) – 浮点数无穷大的字符串表示(默认值为 inf)。

  • sign (string, either '-', '+', or ' ', optional) –

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

    在版本 2.0 中更改: sign 参数现在可以是整型,之前是浮点类型。

  • formatter (dict of callables, optional) –

    如果为非 None,则键应指示相应的格式化函数适用的类型。可调用对象应返回一个字符串。未指定(通过其对应的键)的类型由默认格式化程序处理。可以设置格式化程序的单个类型为

    • ’bool’

    • ’int’

    • ’timedelta’ : a numpy.timedelta64

    • ’datetime’ : a 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, optional) –

    控制对浮点类型 precision 选项的解释。可以取以下值(默认值为 maxprec_equal)

    • ’fixed’: 始终打印正好 precision 个小数位,

      即使这会导致打印比唯一指定值所需的更多或更少位数。

    • ’unique’: 打印代表每个值唯一所需的最少小数位数。

      不同的元素可能具有不同的小数位数。 precision 选项的值将被忽略。

    • ’maxprec’: 打印最多 precision 个小数位,但如果

      元素可以使用更少的位数唯一表示,则仅使用这些位数打印它。

    • ’maxprec_equal’: 打印最多 precision 个小数位,

      但如果数组中的每个元素都可以使用相同数量的更少位数唯一表示,则对所有元素使用这些位数。

  • legacy (string or False, optional) –

    如果设置为字符串 '1.13',则启用 1.13 遗留打印模式。这通过在浮点数的符号位置包含空格和对 0d 数组的不同行为来近似 numpy 1.13 打印输出。这也启用了 1.21 遗留打印模式(在下面描述)。

    如果设置为字符串 '1.21',则启用 1.21 遗留打印模式。这通过在分隔字段的逗号和冒号之后不插入空格来近似 numpy 1.21 打印输出复杂结构化数据类型。

    如果设置为 '1.25',则近似打印 1.25,这主要意味着数字标量在没有其类型信息的情况下打印,例如 3.0 而不是 np.float64(3.0)

    如果设置为 False,则禁用遗留模式。

    无法识别的字符串将被忽略,并为向前兼容性发出警告。

    在版本 1.14.0 中添加。

    在版本 1.22.0 中更改。

    在版本 2.0 中更改。

  • override_repr (callable, optional) – 如果设置了传递的函数,则该函数将用于生成数组的 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])

可以抑制小结果

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