У меня есть двумерный массив numpy
(т. Е. Матрица) A
, который содержит полезные данные, разбросанные по мусору в виде векторов столбцов, а также массив выбора B
, который содержит «1» для этих столбцов. которые важны и 0 для тех, которые не являются. Есть ли способ выбрать только те столбцы из A
, которые соответствуют столбцам в B
? у меня есть матрица
A = array([[ 0, 1, 2, 3, 4], and a vector B = array([ 0, 1, 0, 1, 0])
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24]])
а я хочу
array([[1, 3],
[6, 8],
[11, 13],
[16, 18],
[21, 23]])
Есть ли элегантный способ сделать это? Прямо сейчас у меня есть цикл for, который перебирает B
.
ПРИМЕЧАНИЕ: матрицы, с которыми я имею дело, большие, поэтому я не хочу использовать массивные массивы, поскольку я просто не хочу замаскированных данных