gpt4 book ai didi

python - 以编程方式查找 'spike' 或放入数据集

转载 作者:太空宇宙 更新时间:2023-11-03 11:29:10 26 4
gpt4 key购买 nike

如果我有一个看起来像这样的数据集

[0.523,0.445,0.558,0.492,0.440,0.502,0.742,0.802,0.821,0.811,0.804,0.860]

如您所见,0.502 之后的值出现“尖峰”。有没有办法在 Python 中以编程方式找到它?我已经在使用 Numpy 和 Scipy;我确定那些图书馆包含这样的东西。我只是不知道这个程序叫什么。

一个额外的好处是调整检测尖峰或下降的“灵敏度”,因为数据集可能非常嘈杂。尖峰意味着值的移动平均值持续增加,下降意味着值持续下降。

每个值的范围是[-1,1]。数组中值的数量为 50-100。

最佳答案

我推荐使用 numpy 的 diff 函数:

import numpy    
a = [0.523,0.445,0.558,0.492,0.440,0.502,0.742,0.802,0.821,0.811,0.804,0.860]
numpy.diff(a)

这会给你:

array([-0.078,  0.113, -0.066, -0.052,  0.062,  0.24 ,  0.06 ,  0.019,
-0.01 , -0.007, 0.056])

如果数字是正数,那么就是向上跳,如果是负数,那么就是向下跳。

如果你只是想找到尖峰、向上或向下的地方,试试这个:

abs(numpy.diff(a)) > 0.2

向上或向下调整 0.2 会分别降低或提高灵敏度。这将给出:

array([False, False, False, False, False,  True, False, False, False,
False, False], dtype=bool)

关于python - 以编程方式查找 'spike' 或放入数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26632205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com