Получить индексы срезов хотя бы с одним элементом, удовлетворяющим некоторому условию - PullRequest
1 голос
/ 11 апреля 2019

У меня есть ndarray A формы (n, a, b) Я хочу булеву ndarray X формы (a, b) где

X[i,j]=any(A[:, i, j] < 0)

Как этого добиться?

1 Ответ

1 голос
/ 11 апреля 2019

Я бы использовал промежуточную матрицу и метод sum(axis):

np.random.seed(24)

# example matrix filled either with 0 or -1:
A = np.random.randint(2, size=(3, 2, 2)) - 1

# condition test:
X_elementwise = A < 0

# Check whether the conditions are fullfilled at least once:
X = X_elementwise.sum(axis=0) >= 1

Значения для A и X:

A = array([[[-1,  0],
        [-1,  0]],

       [[ 0,  0],
        [ 0, -1]],

       [[ 0,  0],
        [-1,  0]]])

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