for j in range(u.shape[0]):
    if u[j] < a[0]:
        r[j] = 0
continue
if u[j] > a[a.shape[0] - 1]:
    r[j] = a.shape[0] - 1
continue
for i in range(1, a.shape[0]):
    if u[j] >= a[i - 1] and u[j] < a[i]:
        r[j] = i
break
return r
создание небольших массивов в cython занимает огромное количество времени