📅  最后修改于: 2023-12-03 15:03:16.719000             🧑  作者: Mango
在Python中,当使用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函数,我们可以方便地控制打印结果的精度,同时调整和定制打印结果的其他参数。