从数组中删除异常值(突然下降点)

问题描述 投票:0回答:1

我有一个名为

temp1
len(temp1) = 8405999
的列表。当我绘制 temp1 时,它看起来像这样:

我尝试使用

zscore
IQR
方法删除异常值,但没有一个达到预期效果。

我想删除导致情节突然下降的点。如何删除导致突然下降的点并绘制更平滑的曲线?

python matplotlib smoothing outliers
1个回答
0
投票

您可以使用一种简单的方法,甚至不需要使用 matplot,如下所示:

min_sudden_drop_value = 10
i, L = 0, len(temp1)
while i < L:
    if temp1[i]-temp1[i-1] >= min_sudden_drop_value:
        del temp1[i]
        L = L- 1
        i = i - 1
    i += 1

如果您想同时删除突然上涨和突然下跌的数据,请将条件更改为

if temp1[i]-temp1[i-1] >= abs(min_sudden_drop_value):

© www.soinside.com 2019 - 2024. All rights reserved.