查找一个数组比另一个数组中的元素大的索引

时间:2019-01-23 04:28:33

标签: python numpy

我有两个数组

articleId="+id_"

我想要一个长度为a = np.array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]) b = np.array([0,5,10,15]) 的输出数组,其中每个元素bb[i]的第一个元素的索引,该索引至少为a

b[i]

一个慢速解决方案是:

out = np.array([0, 5, 10, 15]

这是边际速度增加:

out = []
for x in b: 
    i = np.argmax( a >= x )
    out.append( i )

对纯粹的numpy解决方案有任何想法吗?这太慢了。谢谢

1 个答案:

答案 0 :(得分:3)

如果a已排序,则可以使用a.searchsorted(b)