Должен быть (очень) быстрый и эффективный способ получить только элементы из массива numpy или, что еще интереснее, из его фрагмента. Предположим, у меня есть массив numpy:
import numpy as np
a = np.arange(-10,10)
Теперь, если у меня есть список:
s = [9, 12, 13, 14]
Я могу выбрать элементы из:
a[s] #array([-1, 2, 3, 4])
Как я могу получить массив (numpy) из элементов из [s], которые выполняют условие, то есть являются положительными (или отрицательными)? Это должно привести к тому, что
np.ifcondition(a[s]>0, a[s]) #array([2, 3, 4])
Это выглядит тривиально, но я не смог найти простого и сжатого выражения. Я уверен, что маски делают, но на самом деле это не выглядит прямо. Однако ни один из них:
a[a[s]>0]
a[s[a[s]>0]]
на самом деле являются хорошим выбором.
Спасибо за помощь.