найти индексы, где один массив больше, чем элемент во втором массиве - PullRequest
0 голосов
/ 23 января 2019

У меня есть два массива

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])

Я хочу выходной массив с длиной b, где каждый элемент b[i] является индексом первого элемента a, который по крайней мере b[i]:

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

Медленное решение:

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

, и это незначительное увеличение скорости:

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

Любые идеи для чистого решения с пустыми краями?Это непомерно медленно.Спасибо

1 Ответ

0 голосов
/ 23 января 2019

Если a отсортировано, вы можете использовать a.searchsorted(b).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...