маскирование массива numpy с использованием существующей маски той же формы - PullRequest
0 голосов
/ 08 февраля 2020

Скажем, у меня есть numpy маска массива с именем m1 = [[False, True, False], [True, False, True]] И Я хочу найти маску m2 , такую, чтобы ее (i, j) запись была True, если только j >= 0 and m1[i, j+1] == True. Какие-нибудь изящные и эффективные идеи относительно того, как осуществить это? Спасибо

1 Ответ

0 голосов
/ 09 февраля 2020

Вот способ нарезки и использования бинарных операторов:

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

m2 = np.full(m1.shape, False)
m2[:, :-1] = m1[:, 1:] | m2[:, :-1]

print(m2)

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