四舍五入的函数将四舍五入到指定整数到指定范围

时间:2019-09-19 09:09:51

标签: python function numpy range

让我们说我有一个数组y,其中包含连续数,该连续数通常从-1到5,可能有一些离群值,但是我想通过给它们指定特定的整数来将它们固定为指定的整数(0,1,2,3,4)整数范围结束的点,即。 [0.7,1.6,2.4,3.7],因此这里0表示低于0.7的所有内容,1表示0.7到1.6之间的所有内容,2表示1.6到2.4之间的所有内容,依此类推。 我想知道numpy中是否有一个函数可以比下面的代码更有效地为我执行此操作。我已经阅读了numpy.fix和numpy.rint的文档,但看不到如何使用它们。

这是我基本上想做的一个例子:

def flatten(y):
            for i in range(len(y)):
                if y[i] <0.7:
                    y[i] = 0
                elif y[i]>0.7 and y[i]<1.6:
                    y[i] = 1
                elif y[i]>1.6 and y[i]< 2.4:
                    y[i] = 2
                elif y[i] >2.4 and y[i]<3.7:
                    y[i] = 3
                elif y[i]> 3.7:
                    y[i] = 4
            return y

不必是一个函数,但至少要比这更有效。

1 个答案:

答案 0 :(得分:1)

您可以使用np.digitize

 np.digitize(y, [0.7, 1.6, 2.4, 3.7])