#python #numpy
#python #numpy
Вопрос:
У меня есть массив numpy ( X
)
1 2 3 4
3 4 5 6
5 6 7 8
и массив индексов Booelan ( ind
)
0 1 1 0
Я хотел бы нарезать массив numpy на основе индекса.
т.е.
Результирующий массив после силицирования должен иметь только столбцы 2 и 3 (с соответствующим индексом 1):
2 3
4 5
6 7
Я пытался X[:,ind]
, но это не сработало.
Комментарии:
1. Преобразование
ind
в логический массив перед индексацией.
Ответ №1:
Вам нужно преобразовать ind
в boolean array
. Простой способ сделать это — использовать numpy.array()
:
numpy.array(ind, dtype=bool)
Затем вы можете использовать X[:,ind]
Ответ №2:
Вам необходимо преобразовать ind
в dtype: bool
.
Это можно сделать, замаскировав с ind == 1
помощью .
То есть,
>>> X[:,ind == 1]
array([[2, 3],
[4, 5],
[6, 7]])