Eu tenho a seguinte matriz
import numpy as np
A = np.array([
[0, 0, 0, 0, 1, 0, 1],
[0, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0]
]).astype(bool)
Como preencho todas as linhas coluna por coluna depois que uma coluna é True
?
Minha saída desejada:
[0, 0, 0, 0, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 1],
[1, 1, 1, 1, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 0]
Você pode usar
logical_or
combinado comaccumulate
:Saída:
Se você quiser números inteiros, vá com
maximum
:você pode fazer um cumsum .
Edição: a resposta do mozway é mais rápida, use-a.
Aqui está uma abordagem de
pandas.DataFrame.cummax
o que dá