python - numpy - получить индекс матрицы, содержащей True - PullRequest
1 голос
/ 31 марта 2020

В следующем коде

import numpy as np

np.array([
    [False,  True, False],
    [False, False, False],
    [False, False,  True],
    [False, False, False]
])

Я хочу получить массив [True, False, True, False], соответствующий спискам, которые содержат хотя бы один True.

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Как предлагается в комментариях, лучший способ выполнить sh, то есть использовать np.any , который проверяет, имеет ли какой-либо элемент вдоль заданной оси значение True. На практике:

import numpy as np

a = np.array([
           [False,  True, False],
           [False, False, False],
           [False, False,  True],
           [False, False, False]])

np.any(a, axis=1)
array([ True, False,  True, False])
1 голос
/ 31 марта 2020

Попробуйте это:

Вы можете использовать np.any , который проверяет, оценивается ли какой-либо элемент массива вдоль данной оси True.

result = np.any(arr, axis=1)

ИЛИ

Вы можете использовать np.sum для суммирования всех значений вдоль оси столбца и сравнения этих значений, если они больше или равно 1, что возвращает логическую маску.

result = (np.sum(arr, axis=1) >= 1)

Результат:

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