Python去除异常数据——利用numpy求箱线图特征值
Posted dongmie1999
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python去除异常数据——利用numpy求箱线图特征值相关的知识,希望对你有一定的参考价值。
现在有这样一组数据,希望去除掉里面的异常数据。其中,异常数据可能比正常数据大也可能比正常数据小,可能是正的也可能是负的。
数据为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<deg[i] and deg[i]<ulim):
new_deg.append(deg[i])
print("清洗后数据共",len(new_deg),"个\\n",new_deg)
运行效果如下,由于数据是从摄像头采集的,每次会有点不一样
以上是关于Python去除异常数据——利用numpy求箱线图特征值的主要内容,如果未能解决你的问题,请参考以下文章
数据分析&数据挖掘异常值的判断与去除——3σ & 箱线图分析
gdal学习笔记利用python 的gdal,以及相关库进行遥感图像处理(影像裁剪,辐射定标,大气校正,异常值去除)——以基于landsat8数据提取NDVI为例