0

我从步行者那里采取了步骤,并且每一步都增加了压力。我想确定每个步骤的开始和停止以及它发生的时间。到目前为止,此代码可以很好地确定压力何时上升或下降到阈值以下(脚着地并抬起)。现在我在 above_threshold 数组中有真/假状态。

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

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

我是 Python 新手,想知道是否有一种有效的方法来构建一个新数组,告诉我状态何时从 false 变为 true(第一步开始),然后由 true 变为 false(结束第一步)。并且,对于后续步骤的开始和停止。

在此先感谢,斯科特

4

1 回答 1

0

以下将为您提供变化点的索引:

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

如果你想把这些索引分成对,你可以做类似的事情

np.vstack((ind[::2], ind[1::2])).T
于 2012-05-26T21:20:12.197 回答