Как искать количество значений больше заданных значений для каждой строки - PullRequest
0 голосов
/ 08 июля 2019

Например,

a = np.array([[1,2,3]
              [1,0,4]
              [2,1,1]])

и затем для каждой строки я найду число значений, превышающее соответствующее значение в другом массиве, скажем, b = np.array ([2,1,0]), и ожидаемый результат - массив [1, 1,3] (первая строка, одно число больше 2, вторая строка, одно число больше 1 и третья строка на три цифры больше 0).

Есть ли способ использовать NumPy встроенные методы для достижения этой цели? Большое спасибо!

1 Ответ

2 голосов
/ 08 июля 2019

Расширьте b до 2D с помощью None/np.newaxis, чтобы каждый элемент находился в одной строке. Затем сравните с a, что будет broadcast теми сравнениями по всем столбцам для каждой строки, а затем суммируйте строки -

In [12]: (a > b[:,None]).sum(axis=1)
Out[12]: array([1, 1, 3])
...