Python list 和 numpy 实现 3-sigma 异常值剔除和异常值替换实例
实例:异常值直接剔除
import numpy as np
data_list = [1,2,3,4,5,5,4,3,2,1,1,2,3,4,5,5,4,3,2,1,10000,-10000]
data_array = np.asarray(data_list)mean = np.mean(data_array , axis=0)
std = np.std(data_array , axis=0)preprocessed_data_array = [x for x in data_array if (x > mean - 3 * std)]
preprocessed_data_array = [x for x in preprocessed_data_array if (x < mean + 3 * std)]
print(preprocessed_data_array )
- 输出:
[1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1]
实例:异常值替换为均值
import numpy as npdata_list = [1,2,3,4,5,5,4,3,2,1,1,2,3,4,5,5,4,3,2,1,10000,-10000]
# print(sum(data_list)/len(data_list))data_array = np.asarray(data_list, dtype=float) # 注意:这里要指定 dtype 的类型,否则下面替换时可能会因数据类型不同而导致替换的均值的精度不同mean = np.mean(data_array, axis=0)
std = np.std(data_array, axis=0)
print(mean)floor = mean - 3*std
upper = mean + 3*stdfor i, val in enumerate(data_array):data_array[i] = float(np.where(((val<floor)|(val>upper)), mean, val))
print(data_array)
- 输出:
2.727272727272727
[1. 2. 3. 4. 5. 5.4. 3. 2. 1. 1. 2.3. 4. 5. 5. 4. 3.2. 1. 2.72727273 2.72727273]
- 注意:如果 data_array = np.asarray(data_list, dtype=float) 没有指定 dtype=float,则默认取 mean 的下整数值替换异常值,输出如下:
2.727272727272727
[1 2 3 4 5 5 4 3 2 1 1 2 3 4 5 5 4 3 2 1 2 2]
参考
- https://www.kdnuggets.com/2017/02/removing-outliers-standard-deviation-python.html
Python list 和 numpy 实现 3-sigma 异常值剔除和异常值替换实例相关推荐
- 吴恩达 深度学习 编程作业(1-2.1)- Python Basics with Numpy
Python Basics with Numpy (optional assignment) Welcome to your first assignment. This exercise gives ...
- 爱因斯坦求和约定在Python扩展库Numpy中的实现
推荐教材: <Python数据分析.挖掘与可视化>(慕课版)(ISBN:978-7-115-52361-7),董付国,人民邮电出版社,定价49.8元,2020年1月出版,2021年12月第 ...
- [转载] Python中的numpy linalg模块
参考链接: Python中的numpy.bmat 原文链接:https://www.cnblogs.com/xieshengsen/p/6836430.html # 线性代数 # numpy.lina ...
- #第17篇分享:python数据处理-pandas,numpy,matplotlib
#python数据处理-pandas,numpy,matplotlib: 对于数据来说,有数据爬取-爬虫,数据处理-就是今天学习的,以及数据分析-sklearn,tensoflow机器学习及深度学习: ...
- python箱线图异常值_Python数据清洗--异常值识别与处理01
前言 在<Python数据清洗--类型转换和冗余数据删除>和<Python数据清洗--缺失值识别与处理>文中已经讲解了有关数据中重复观测和缺失值的识别与处理,在本节中将分享异常 ...
- Python精讲Numpy基础,大牛笔记详细解释
https://www.toutiao.com/a6664936105076326920/ 总认为Numpy是渣渣,直到深入接触以后才知道功能这么强大.堪比Matlab啊.果然是人生苦短,我用Pyth ...
- python有哪些作用-Python中的NumPy是什么?有什么作用?
Python中的NumPy是什么?NumPy或NumericPython是用于科学计算的通用数组处理python软件包.它包含许多强大的功能,其中包括:具有许多有用功能的健壮的多维数组对象.用于将其他 ...
- python怎么安装numpy库-python怎么安装numpy库
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. Python官网上的发行版是不包含Num ...
- python输入数组并计算_利用Python进行数据分析——Numpy基础:数组和矢量计算
利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...
最新文章
- java判断request请求是手机还是pc终端
- Java的知识点31——线程同步
- printstream java_Java PrintStream
- 好的高等教育 赫胥黎
- 有关Dispose,Finalize,GC.SupressFinalize函数-托管与非托管资源释放的模式
- OpenJudge:熄灯问题
- EJB 3.x:生命周期和并发模型(第2部分)
- [usaco2004][bzoj3379] 交作业
- 字典和键值对换输出_Python知识小结—字典
- echart高级使用_echarts高级入坑
- 复利计算——单元测试
- 【cocos2d-x 3.7 飞机大战】 决战南海I (三) 敌机实现
- Windows10 如何删掉内置的 skype ?
- c语言fread参数,C语言fread函数
- bootdo jar 改war 坑
- 应用层下的人脸识别(三):人脸比对
- handsontable使用及遇到的坑-前言
- 色彩对比广告设计_为什么我们都需要使用色彩对比检查器
- 【第3版emWin教程】第57章 emWin6.x的炫酷时钟表盘设计,结合硬件RTC
- win10硬盘锁怎么解除_电脑磁盘加密了怎么解密_win10如何关闭硬盘加密