使用Numpy对特征中的异常值进行替换及条件替换方式


Posted in Python onJune 08, 2020

原始数据为Excel文件,由传感器获得,通过Pyhton xlrd模块读入,读入后为数组形式,由于其存在部分异常值和缺失值,所以便利用Numpy对其中的异常值进行替换或条件替换。

1. 将'nan'替换为给定值

import numpy as np
 
data = np.array([['nan', 1, 2, 3, 4], # 数据类型为字符串型
        [10, 15, 20, 25, 'nan'],
        ['nan', 5, 8, 10, 20]])
print(data)
# [['nan' '1' '2' '3' '4']
# ['10' '15' '20' '25' 'nan']
# ['nan' '5' '8' '10' '20']]
 
data[data == 'nan'] = 100 # 将numpy中为'nan'的项替换为 100
print(data)
# [['100' '1' '2' '3' '4']
# ['10' '15' '20' '25' '100']
# ['100' '5' '8' '10' '20']]
 
data = data.astype(float) # 将数据由字符型转换为浮点型
print(data)
# [[100.  1.  2.  3.  4.]
# [ 10. 15. 20. 25. 100.]
# [100.  5.  8. 10. 20.]]

2. 按列进行条件替换

当利用'3σ准则'或者箱型图进行异常值判断时,通常需要对 > upper 或 < lower的值进行处理,这时就需要按列进行条件替换了。

print(data)
# [[100.  1.  2.  3.  4.]
# [ 10. 15. 20. 25. 100.]
# [100.  5.  8. 10. 20.]]
 
data[:, 1][data[:, 1] < 5] = 5 # 对第2列小于 5 的替换为5
print(data)
# [[100.  5.  2.  3.  4.]
# [ 10. 15. 20. 25. 100.]
# [100.  5.  8. 10. 20.]]
 
data[:, 2][data[:, 2] > 15] = 10 # 对第3列大于 15 的替换为10
print(data)
# [[100.  5.  2.  3.  4.]
# [ 10. 15. 10. 25. 100.]
# [100.  5.  8. 10. 20.]]

补充知识:Python之dataframe修改异常值—按行判断值是否大于平均值的指定倍数,如果是则用均值替换

如下所示:

使用Numpy对特征中的异常值进行替换及条件替换方式

import pandas as pd

data = {'hah':[1,2,9],
    '数量':[3,2,5],
    '价格':[10,9,8]}
df = pd.DataFrame(data)
df

import numpy as np
def panduan(x):
  x_mean = np.mean(x)
  print(x_mean)
  for i in x.index:
    if x[i] > x_mean*2:
      x[i] = x_mean
#     print(i)   
  return x

df = df.apply(lambda x:panduan(x),axis=1)

以上这篇使用Numpy对特征中的异常值进行替换及条件替换方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之不要红头文件(1)
Sep 28 Python
Python中实现从目录中过滤出指定文件类型的文件
Feb 02 Python
python实现日常记账本小程序
Mar 10 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
Sep 02 Python
基于Python在MacOS上安装robotframework-ride
Dec 28 Python
用python求一个数组的和与平均值的实现方法
Jun 29 Python
python中time库的实例使用方法
Oct 31 Python
python的json中方法及jsonpath模块用法分析
Dec 06 Python
python用opencv完成图像分割并进行目标物的提取
May 25 Python
python使用hdfs3模块对hdfs进行操作详解
Jun 06 Python
Python sorted对list和dict排序
Jun 09 Python
Python使用openpyxl模块处理Excel文件
Jun 05 Python
Python替换NumPy数组中大于某个值的所有元素实例
Jun 08 #Python
python如何编写win程序
Jun 08 #Python
如何写python的配置文件
Jun 07 #Python
python dict乱码如何解决
Jun 07 #Python
python中adb有什么功能
Jun 07 #Python
python如何保存文本文件
Jun 07 #Python
Python如何用wx模块创建文本编辑器
Jun 07 #Python
You might like
php页面缓存ob系列函数介绍
2012/10/18 PHP
php查询mssql出现乱码的解决方法
2014/12/29 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
PHP实现的策略模式示例
2019/03/20 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
Jquery为DIV添加click事件的简单实例
2016/06/02 Javascript
JavaScript事件学习小结(五)js中事件类型之鼠标事件
2016/06/09 Javascript
全面介绍javascript实用技巧及单竖杠
2016/07/18 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
js中开关变量使用实例
2017/02/24 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
python 5个顶级异步框架推荐
2020/09/09 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
一款纯css3实现的鼠标悬停动画按钮
2014/12/29 HTML / CSS
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
哈萨克斯坦移动和数字技术在线商店:SatelOnline.kz
2020/09/04 全球购物
华为c/c++笔试题
2016/01/25 面试题
教师节感恩老师演讲稿
2014/08/28 职场文书
检讨书格式
2015/01/23 职场文书
社区工作者个人总结
2015/02/28 职场文书
2015年音乐教师个人工作总结
2015/05/20 职场文书
三八妇女节主持词
2015/07/04 职场文书
SQL Server中锁的用法
2022/05/20 SQL Server