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

标签 python numpy rounding

我想知道如何将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/

相关文章:

python - "Numpy not Available"安装Pytorch XLA后

python - 将 scipy 压缩距离矩阵转换为按行读取的较低矩阵

python - 如何降级numpy?

c# - 最大的 "float"小于等于 `int.MaxValue`

javascript - 点后如何在 javascript 无限数字中做四舍五入?

python - pytorch 计算成对差异 : Incorrect result in NumPy vs PyTorch and different PyTorch versions

python - 获取数据框中不同 ID 的行值

python - sklearn选择Kbest : which variables were chosen?

python - Mongodb python 语法获取数组值。

c - c中数字删除小数位的错误