如何检测数据流Python3中的变化率

时间:2017-01-22 23:57:26

标签: python-3.x statistics

我有一个输入源,可以在[0..256]中为我提供整数。

我希望能够找到此数据中的峰值,即新输入。 我尝试使用滚动平均值并找到百分比误差。但这并没有真正起作用。

基本上,我希望我的程序能够找到数据图形会出现的位置,但我希望它能忽略平滑过渡。

思想?

1 个答案:

答案 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

如果其他人有想法分享也会很棒......