Python去除异常数据——利用numpy求箱线图特征值

系统 2396 0

现在有这样一组数据,希望去除掉里面的异常数据。其中,异常数据可能比正常数据大也可能比正常数据小,可能是正的也可能是负的。

Python去除异常数据——利用numpy求箱线图特征值_第1张图片

数据为deg=[]

            
              import numpy as np

if(True):
    #new_nums = list(set(deg)) #剔除重复元素
    mean = np.mean(deg)
    var = np.var(deg)
    print("原始数据共",len(deg),"个\n",deg)
    '''
    for i in range(len(deg)):
        print(deg[i],'→',(deg[i] - mean)/var)
        #另一个思路,先归一化,即标准正态化,再利用3σ原则剔除异常数据,反归一化即可还原数据
    '''
    #print("中位数:",np.median(deg))
    percentile = np.percentile(deg, (25, 50, 75), interpolation='midpoint')
    print("分位数:",percentile)
    #以下为箱线图的五个特征值
    Q1 = percentile[0]#上四分位数
    Q3 = percentile[2]#下四分位数
    IQR = Q3 - Q1#四分位距
    ulim = Q3 + 1.5*IQR#上限 非异常范围内的最大值
    llim = Q1 - 1.5*IQR#下限 非异常范围内的最小值

    new_deg = []
    for i in range(len(deg)):
        if(llim
              
            
          

运行效果如下,由于数据是从摄像头采集的,每次会有点不一样

Python去除异常数据——利用numpy求箱线图特征值_第2张图片

Python去除异常数据——利用numpy求箱线图特征值_第3张图片


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论