2012-05-26 6 views
0

У меня есть шаги, предпринятые от ходунков и увеличение давления для каждого шага. Я хочу определить начало и конец каждого шага и время его возникновения. Этот код отлично работает до сих пор, чтобы определить, когда давление поднимается или опускается ниже порога (ноги приземляются и поднимаются). Теперь у меня есть истинные/ложные состояния в массиве above_threshold.Индексирование состояния Изменения в Python nparray

data = np.loadtxt('junk.csv',delimiter=',',skiprows=1) 
Fz = data 

sigma = 5      
threshold = 30     
above_threshold = gaussian_filter(Fz, sigma=sigma) > threshold 

Я новичок в Python, и мне интересно, если есть эффективный способ построить новый массив, который говорит мне индекс, когда изменение состояния от ложного к истине (для первого этапа запуска), а затем true для false (для завершения первого шага). И для начала и остановки последующих шагов.

Спасибо заранее, Скотт

+0

Я все еще смущен относительно того, что вы пытаетесь сделать и как выглядит ваш набор данных. –

+0

Я должен был упомянуть, что мне нужен индекс (эквивалентный времени), когда каждый шаг начинается и когда заканчивается каждый. Приведенный код Aix работал хорошо. Однако открытость для других идей. – Scott

ответ

0

Следующие даст вам индексы точек изменения:

ind = np.where(np.diff(above_threshold))[0] + 1 

Если после этого вы хотите, чтобы разделить эти показатели на пары, вы могли бы сделать что-то вроде

np.vstack((ind[::2], ind[1::2])).T 
+0

Спасибо Aix! Это сработало очень хорошо. Сопряжение их в массив - это то, что я хотел. Ты читаешь мои мысли. – Scott

Смежные вопросы