Python矩陣去極值是一種較為常見的數(shù)據(jù)預(yù)處理方法,是為了將原始數(shù)據(jù)中的異常值或離群值給剔除或轉(zhuǎn)換成一個(gè)更加合理的值。而python中的numpy和pandas庫中提供了對(duì)矩陣去極值的實(shí)現(xiàn)。
import numpy as np from scipy import stats # 構(gòu)造一個(gè)5X5的矩陣 data = np.random.randn(5, 5) # 去除其中的極值 data[(np.abs(stats.zscore(data))< 3).all(axis=1)]
上述代碼中,構(gòu)造了一個(gè)5X5的矩陣,其中np.random.randn(5, 5)表示構(gòu)造一個(gè)5X5的服從標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)矩陣。接下來借助于scipy.stats庫中的zscore函數(shù)實(shí)現(xiàn)獲取每個(gè)元素的zscore值,以此來判斷數(shù)據(jù)是否為極值,然后通過all()函數(shù)進(jìn)行逐行判斷,以對(duì)整個(gè)矩陣進(jìn)行處理。
需要注意,對(duì)于數(shù)據(jù)量較大的矩陣或數(shù)據(jù)集,去極值時(shí)可能造成數(shù)據(jù)量的顯著變化,而且很容易導(dǎo)致一些有用的信息被過濾掉,因此在實(shí)際操作中需要根據(jù)數(shù)據(jù)情況進(jìn)行判斷,達(dá)到合理轉(zhuǎn)化。