📜  np 打印精度 - Python (1)

📅  最后修改于: 2023-12-03 15:03:16.719000             🧑  作者: Mango

以'np 打印精度 - Python '作主题

在Python中,当使用numpy进行数值计算时,往往需要控制打印结果的精度。本文将简要介绍在numpy中如何控制打印精度。

numpy打印精度控制

在numpy中,可以使用set_printoptions函数来控制打印结果的精度。

import numpy as np
np.set_printoptions(precision=2)  # 设置打印精度为2位小数

此时,numpy打印结果的小数位数将被限制为2位。

除了precision参数外,set_printoptions还有很多其他参数可以配置。以下是一些常用参数:

  • precision:设置小数位数
  • suppress:当数值巨大或极小时,是否使用科学计数法
  • threshold:设置比较大的浮点数阈值,以决定打印格式
  • edgeitems:设置打印最前面和最后面的元素的数量
  • linewidth:设置输出行的最大宽度
np.set_printoptions(precision=2, 
                    suppress=True, 
                    threshold=1000, 
                    edgeitems=3, 
                    linewidth=100)

上述代码中,除了设置了精度为2位小数,还同时开启了suppress选项,这样在控制打印结果的精度时,科学计数法不会再出现。threshold选项用于设置打印的数值阈值,只有小于该阈值的数值才会被打印。edgeitems选项用于控制打印结果的前后元素数目。linewidth选项用于设置输出结果的最大宽度。

示例
x = np.random.rand(3, 3) * 10000
print(x)

输出:

[[6341.56 8467.49 8539.66]
 [3428.77 1507.08 4146.47]
 [6799.43 8503.53  447.67]]
np.set_printoptions(precision=2, suppress=True)
print(x)

输出:

[[6341.56 8467.49 8539.66]
 [3428.77 1507.08 4146.47]
 [6799.43 8503.53  447.67]]

将精度设置为2位小数后,打印出的结果中小数位数被限制为2位,同时使用了科学计数法,去掉了小数点后面的0。如果不想使用科学计数法,可以将suppress选项设置为True。

np.set_printoptions(precision=2, suppress=True, threshold=1000, edgeitems=2, linewidth=80)
print(x)

输出:

[[6341.56 8467.49 ... 447.67]]

此时,因为threshold选项被设置为1000,整个数组被打印出来了,同时edgeitems选项被设置为2,只打印了前两个元素和最后两个元素。

结论

通过使用numpy中的set_printoptions函数,我们可以方便地控制打印结果的精度,同时调整和定制打印结果的其他参数。