Como identifico sequências de valores em uma matriz booleana?

Eu tenho uma matriz booleana longa:

bool_array = [ True, True, True, True, True, False, False, False, False, False, True, True, True, False, False, True, True, True, True, False, False, False, False, False, False, False ]

Preciso descobrir onde os valores mudam, ou seja, os endereços onde as seqüências deTrue eFalse início. Nesse caso em particular, eu gostaria de obter

index = [0, 5, 10, 13, 15, 19, 26]

Existe uma maneira fácil de fazer o loop manual para verificar cada i-ésimo elemento com o (i + 1) th?

questionAnswers(3)

yourAnswerToTheQuestion