У меня есть массив (n, n, 2) numpy, элементы которого я хочу выбрать на основе маски (n, n) без использования циклов. Есть ли способ векторизовать эту операцию в numpy? Скажем, у меня есть numpy массив
X = array([[[18, 8],
[ 9, 2],
[11, 4],
[18, 14]],
[[ 8, 10],
[13, 5],
[13, 6],
[13, 18]],
[[ 8, 4],
[ 2, 13],
[19, 11],
[ 3, 15]],
[[12, 6],
[ 7, 3],
[19, 17],
[ 1, 12]]])
и маска
M = array([[1, 0, 0, 0],
[1, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 0]])
Обрабатывая каждую двумерную запись в X как один элемент, есть ли способ использовать маску M выбрать элементы X? То есть, выберите 2-D элемент в X, если его соответствующий элемент в маске M равен 1.
Так что приведенный выше пример вернет
[
[[18, 8]],
[[ 8, 10],
[13, 5]],
[[19, 11]],
[]
]