фильтрация матрицы numpy с использованием столбца фрейма данных, который является логическим столбцом - PullRequest
0 голосов
/ 20 июня 2020

У меня есть фрейм данных, где один столбец является логическим столбцом, в моем фрейме данных n строк. Я пытаюсь использовать этот столбец для фильтрации матрицы numpy, которая равна n на 30.

filter_matrix = my_matrix [df ['my_bool_col'],:]

Ошибка, которую я получаю:

IndexError: логический индекс не соответствует индексированному массиву по измерению 1; размер равен 30, но соответствующий логический размер равен 1

1 Ответ

0 голосов
/ 21 июня 2020

Итак, проблема в том, что вы хотите проиндексировать пустую матрицу на основе логических значений во фрейме данных. Для этого вы можете сделать что-то вроде этого:

filtered_matrix = my_matrix[np.where([df['my_bool_col'].astype(int) == 1), :]

Numpy метод np.where() (https://numpy.org/doc/stable/reference/generated/numpy.where.html) в этом случае вернет индексы, где запись True, затем вы используете этот массив индексов для индексации вашей матрицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...