使用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类的基础入门知识
Nov 24 Python
Python实现给文件添加内容及得到文件信息的方法
May 28 Python
Django使用HttpResponse返回图片并显示的方法
May 22 Python
python 用for循环实现1~n求和的实例
Feb 01 Python
Python之修改图片像素值的方法
Jul 03 Python
python实现将文件夹内的每张图片批量分割成多张
Jul 22 Python
python实现大文本文件分割
Jul 22 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
Python使用get_text()方法从大段html中提取文本的实例
Aug 27 Python
Python自动采集微信联系人的实现示例
Feb 28 Python
python要安装在哪个盘
Jun 15 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
Jul 20 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 数组入门教程小结
2009/05/20 PHP
PHP的Json中文处理解决方案
2016/09/29 PHP
php使用自定义函数实现汉字分割替换功能示例
2017/01/30 PHP
详解PHP的抽象类和抽象方法以及接口总结
2019/03/15 PHP
JS 常用校验函数
2009/03/26 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
vue组件(全局,局部,动态加载组件)
2018/09/02 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
Python命令行参数解析模块optparse使用实例
2015/04/13 Python
使用Python保存网页上的图片或者保存页面为截图
2016/03/05 Python
Python中的FTP通信模块ftplib的用法整理
2016/07/08 Python
对python 各种删除文件失败的处理方式分享
2018/04/24 Python
Python爬虫信息输入及页面的切换方法
2018/05/11 Python
Python读取xlsx文件的实现方法
2019/07/04 Python
python图像处理模块Pillow的学习详解
2019/10/09 Python
Python递归调用实现数字累加的代码
2020/02/25 Python
Python3基于plotly模块保存图片表格
2020/08/03 Python
Python requests上传文件实现步骤
2020/09/15 Python
python regex库实例用法总结
2021/01/03 Python
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
Groupon西班牙官方网站:在线优惠券和交易,节省高达70%
2021/03/13 全球购物
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
保安部任务及岗位职责
2014/02/25 职场文书
实习单位评语
2014/04/26 职场文书
安全宣传标语口号
2014/06/06 职场文书
实习工作表现评语
2014/12/31 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书
详解Redis主从复制实践
2021/05/19 Redis
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js
css样式important规则的正确使用方式
2022/06/10 HTML / CSS
GoFrame框架数据校验之校验结果Error接口对象
2022/06/21 Golang
JS class语法糖的深入剖析
2022/07/07 Javascript