In [86]: array.std()
Out[86]: 100.70953143681199
In [87]: array.std().round()
Out[87]: 101.0
In [88]: array.std().round(2)
Out[88]: 100.70999999999999
In [89]: array.std().round(decimals=2)
Out[89]: 100.70999999999999
In [90]: np.round(array.std(), decimals=2)
Out[90]: 100.70999999999999
我希望标准偏差为小数点后两位,但到目前为止它还没有工作。我该怎么办呢?如何使其适用于numpy
?
答案 0 :(得分:1)
Python有一个名为round()
的内置函数;但为了得到你想要的,你想要将std
转换为浮动。像std_dev = round(float(array.std()), 2)
这样的东西应该可以满足您的需求。
答案 1 :(得分:1)
Numpy正在对您显示的案例中的数字进行正确舍入,但是当数字显示在屏幕上时,您会看到floating point precision的结果。如果这种精度损失确实会给您带来麻烦,那么您应该考虑使用decimal
包。
import decimal
s = decimal.Decimal(100.70953143681199)
s = round(s, 2)
print(s)
# 100.71