нарезка массива numpy на основе определенных логических индексов - PullRequest
0 голосов
/ 20 апреля 2019

У меня есть массив 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], но он не работал.

Ответы [ 2 ]

3 голосов
/ 20 апреля 2019

Вам нужно конвертировать ind в boolean array.Простой способ сделать это - использовать numpy.array():

numpy.array(ind, dtype=bool)

. Затем вы можете использовать X[:,ind]

2 голосов
/ 20 апреля 2019

Вам необходимо преобразовать ind в dtype: bool.

Это можно сделать, маскируя с помощью ind == 1.

То есть

>>> X[:,ind == 1]
array([[2, 3],
       [4, 5],
       [6, 7]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...