gpt4 book ai didi

python - Python 的 NumPy.around : Rounding NumPy Arrays 中更好的舍入

转载 作者:太空狗 更新时间:2023-10-29 17:49:03 26 4
gpt4 key购买 nike

我正在寻找一种以更直观的方式舍入 numpy 数组的方法。我有几个花车中的一些,想将它们限制在小数点后几位。这将这样做:

>>>import numpy as np
>>>np.around([1.21,5.77,3.43], decimals=1)
array([1.2, 5.8, 3.4])

现在,当尝试对恰好在舍入步骤之间的数字进行舍入时,问题就出现了。我希望 0.05 舍入为 0.1,但 np.around 设置为舍入到“最接近的 even 数”。这会产生以下内容:

>>>np.around([0.55, 0.65, 0.05], decimals=1)
array([0.6, 0.6, 0.0])

那么我的问题是,舍入到最接近的数字的最有效方法是什么,而不仅仅是最接近的偶数。

有关 np.around 的更多信息,请参阅 its documentation .

最佳答案

around 这样做的方式是正确的,但是如果你想做一些不同的事情,你可以,例如,减去一个比舍入精度小得多的数量,例如,

def myround(a, decimals=1):
return np.around(a-10**(-(decimals+5)), decimals=decimals)

In [22]: myround(np.array([ 1.21, 5.77, 3.43]), 1)
Out[22]: array([ 1.2, 5.8, 3.4])

In [23]: myround(np.array([ 0.55, 0.65, 0.05]), 1)
Out[23]: array([ 0.5, 0.6, 0. ])

我在这里选择 5 的原因是,由于不包括偶数/奇数的区别,你隐含地引入了大约 10**(-(decimal+1))/的平均误差2 所以你不应该提示该错误的 1/10000 的显式错误。

关于python - Python 的 NumPy.around : Rounding NumPy Arrays 中更好的舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11975203/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com