我有一个
levels
大堆
# 0 1 2 3 4
levels = np.array(( 0.2, 0.4, 0.6, 0.8 ))
和一个
values
阵列,例如。,
np.random.seed(20230204)
values = np.random.rand(5)
以及最终的SLOW函数
def map_into_levels(values, levels):
result = []
for n in np.asarray(values):
for r, level in enumerate(levels):
if n <= level:
break
else:
r += 1
result.append(r)
return result
所以我有
In [153]: np.random.seed(20220204)
...: values = np.random.rand(6)
...: levels = np.array(( 0.2, 0.4, 0.6, 0.8 ))
...: result = map_into_levels(values, levels)
...: print(levels)
...: print(values)
...: print(result)
[0.2 0.4 0.6 0.8]
[0.00621839 0.23945242 0.87124946 0.56328486 0.5477085 0.88745812]
[0, 1, 4, 2, 2, 4]
In [154]:
你能给我指一个Numpy原语吗?它可以帮助我加快操作速度?