我在numpy中有一个1D数组,我想在值超过numpy数组中的值的位置找到索引的位置。
例如
aa = range(-10,10)
查找超出aa值的位置5。
aa
5
这有点快(看起来更好)
np.argmax(aa>5)
因为argmax将在第一个位置停止True(“如果多次出现最大值,则返回对应于第一个出现的索引。”)并且不会保存其他列表。
argmax
True
In [2]: N = 10000 In [3]: aa = np.arange(-N,N) In [4]: timeit np.argmax(aa>N/2) 100000 loops, best of 3: 52.3 us per loop In [5]: timeit np.where(aa>N/2)[0][0] 10000 loops, best of 3: 141 us per loop In [6]: timeit np.nonzero(aa>N/2)[0][0] 10000 loops, best of 3: 142 us per loop