Допустим, у меня есть массив 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
Не обязательно быть единственной функцией, но, по крайней мере, чем-то более эффективным, чем эта.