我有一个输入源,可以在[0..256]
中为我提供整数。
我希望能够找到此数据中的峰值,即新输入。 我尝试使用滚动平均值并找到百分比误差。但这并没有真正起作用。
基本上,我希望我的程序能够找到数据图形会出现的位置,但我希望它能忽略平滑过渡。
思想?
答案 0 :(得分:0)
一个简单的想法跟随我的评论。第一
>>> import numpy as np
假设我们有以下时间序列
>>> sample = np.random.random_integers(0,256,size=(100,))
要知道尖峰是否可以被视为罕见事件,我们必须知道每个事件的相关可能性。由于您正在处理"变化率",让我们计算那些
>>> sample_vars = np.abs(-1 + 1.*sample[1:]/sample[:-1]) # the "1.*" to get floats... (python<3)
然后我们可以定义最多有5%(样本)发生几率的变异
>>> spike_defining_threshold = np.percentile(sample_vars, 95)
最后是sample_vars[-1]>spike_defining_threshold
如果其他人有想法分享也会很棒......