Выбор строк в массиве numpy по условию

Есть двумерный массив numpy

arr = np.arange(18).reshape((-1, 6))

    [[ 0  1  1  3  4  5]
     [ 6  7  8  9 10 11]
     [12 13 14 15 16 17]]

Нужно отобрать строки, в которых все элементы начиная с 3го элемента > a. Например для a = 9 останется только

[[12 13 14 15 16 17]]

А для a = 7

[[ 6  7  8  9 10 11]
 [12 13 14 15 16 17]]

Как это сделать не перебирая каждую строку в цикле?


Ответы (1 шт):

Автор решения: splash58

делаем выборку элементов arr[:, 2:] и проверяем, что они все больше a

arr[(arr[:, 2:] > a).all(axis=1)]
→ Ссылка