gpt4 book ai didi

python - 四舍五入到最接近的步长

转载 作者:行者123 更新时间:2023-12-03 09:51:22 24 4
gpt4 key购买 nike

我想知道如何将numpy中的数字四舍五入到上限或下限阈值,该阈值是预定义步长的函数。希望以更清楚的方式说明,如果我的数字是123,步长等于50,则需要将123舍入到150或100(在这种情况下为100)中最接近的整数。但我想知道是否有更好,更简洁的方法来做到这一点。

提前致谢,

保罗

def getRoundedThresholdv1(a, MinClip):
import numpy as np
import math
digits = int(math.log10(MinClip))+1
b = np.round(a, -digits)
if b > a: # rounded-up
c = b - MinClip
UpLow = np.array((b,c))
else: # rounded-down
c = b + MinClip
UpLow = np.array((c,b))
AbsDelta = np.abs(a - UpLow)
return UpLow[AbsDelta.argmin()]




getRoundedThresholdv1(143, 50)

最佳答案

我认为您不需要numpy:

def getRoundedThresholdv1(a, MinClip):
return round(float(a) / MinClip) * MinClip

这里 a是一个数字,如果您想对该函数进行矢量化处理,则只需要用 round替换 np.round,用 float(a)替换 np.array(a, dtype=float)

关于python - 四舍五入到最接近的步长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7859147/

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