我想知道如何在numpy中将数字四舍五入到一个预定义的步长的上限或下限。更清晰地陈述,例如,如果我有数字123和步长等于50,则需要将123四舍五入到最接近150或100中的一个,此时为100。我编写了以下函数来实现此操作,但我想知道是否有更好、更简洁的方法。
提前感谢, Paolo
提前感谢, Paolo
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)
getRoundedThresholdv1(143, 50)
返回50而不是150。 - Ruggero Turra