Ваше понимание списка состоит не из списка индексов, а из списка самих элементов. Вы должны сгенерировать индексы рядом с элементами, используя enumerate
:
ind = [i for i, x in enumerate(data) if x > 0.5]
И не нужно быть настолько многословным с нарезкой:
data2 = data[ind[0]: ind[-1]+1] # Matlab's index 1 is Python's index 0
Индексирование списка индексов с помощью len(ind)
даст IndexError
, так как индексирование в Python начинается с 0 (в отличие от Matlab), а последний индекс следует выбирать с ind[len(ind)-1]
или просто ind[-1]
.