使用Numpy對(duì)特征中的異常值進(jìn)行替換及條件替換方式
原始數(shù)據(jù)為Excel文件,由傳感器獲得,通過(guò)Pyhton xlrd模塊讀入,讀入后為數(shù)組形式,由于其存在部分異常值和缺失值,所以便利用Numpy對(duì)其中的異常值進(jìn)行替換或條件替換。
1. 將'nan'替換為給定值
import numpy as np
data = np.array([['nan', 1, 2, 3, 4], # 數(shù)據(jù)類(lèi)型為字符串型
[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'的項(xiàng)替換為 100
print(data)
# [['100' '1' '2' '3' '4']
# ['10' '15' '20' '25' '100']
# ['100' '5' '8' '10' '20']]
data = data.astype(float) # 將數(shù)據(jù)由字符型轉(zhuǎn)換為浮點(diǎn)型
print(data)
# [[100. 1. 2. 3. 4.]
# [ 10. 15. 20. 25. 100.]
# [100. 5. 8. 10. 20.]]
2. 按列進(jìn)行條件替換
當(dāng)利用'3σ準(zhǔn)則'或者箱型圖進(jìn)行異常值判斷時(shí),通常需要對(duì) > upper 或 < lower的值進(jìn)行處理,這時(shí)就需要按列進(jìn)行條件替換了。
print(data) # [[100. 1. 2. 3. 4.] # [ 10. 15. 20. 25. 100.] # [100. 5. 8. 10. 20.]] data[:, 1][data[:, 1] < 5] = 5 # 對(duì)第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 # 對(duì)第3列大于 15 的替換為10 print(data) # [[100. 5. 2. 3. 4.] # [ 10. 15. 10. 25. 100.] # [100. 5. 8. 10. 20.]]
補(bǔ)充知識(shí):Python之dataframe修改異常值—按行判斷值是否大于平均值的指定倍數(shù),如果是則用均值替換
如下所示:

import pandas as pd
data = {'hah':[1,2,9],
'數(shù)量':[3,2,5],
'價(jià)格':[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對(duì)特征中的異常值進(jìn)行替換及條件替換方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)對(duì)字典分別按鍵(key)和值(value)進(jìn)行排序的方法分析
這篇文章主要介紹了Python實(shí)現(xiàn)對(duì)字典分別按鍵(key)和值(value)進(jìn)行排序的方法,結(jié)合實(shí)例形式分析了Python基于sorted函數(shù)及operator庫(kù)進(jìn)行字典排序的相關(guān)操作技巧,需要的朋友可以參考下2018-12-12
深入理解Python虛擬機(jī)中列表(list)的實(shí)現(xiàn)原理及源碼剖析
在本篇文章當(dāng)中主要給大家介紹?cpython?虛擬機(jī)當(dāng)中針對(duì)列表的實(shí)現(xiàn),在?Python?中,List?是一種非常常用的數(shù)據(jù)類(lèi)型,可以存儲(chǔ)任何類(lèi)型的數(shù)據(jù),并且支持各種操作,如添加、刪除、查找、切片等,在本篇文章當(dāng)中將深入去分析這一點(diǎn)是如何實(shí)現(xiàn)的2023-03-03
解決python執(zhí)行不輸出系統(tǒng)命令彈框的問(wèn)題
今天小編就為大家分享一篇解決python執(zhí)行不輸出系統(tǒng)命令彈框的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
關(guān)于pygame.surface.blit()方法4個(gè)參數(shù)的使用
這篇文章主要介紹了關(guān)于pygame.surface.blit()方法4個(gè)參數(shù)的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
Anaconda中Python虛擬環(huán)境的創(chuàng)建使用與刪除方法詳解
這篇文章主要為大家介紹了在Anaconda環(huán)境下,創(chuàng)建、使用與刪除Python虛擬環(huán)境的方法,具有一定的借鑒價(jià)值,需要的小伙伴可以跟隨小編一起了解一下2023-08-08
Pandas中DataFrame的分組/分割/合并的實(shí)現(xiàn)
這篇文章主要介紹了Pandas中DataFrame的分組/分割/合并的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
python導(dǎo)出requirements.txt的幾種方法總結(jié)
這篇文章主要介紹了python導(dǎo)出requirements.txt的幾種方法總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02

