Python主要數(shù)據(jù)預(yù)處理函數(shù)
下表給出了本節(jié)要介紹的Python中的插值二拐、數(shù)據(jù)歸一化、主成分分析等與數(shù)據(jù)預(yù)處理相關(guān)的函數(shù)凳兵。
Python主要數(shù)據(jù)預(yù)處理函數(shù)
(1)interpolate
- 功能:interpolate是Scipy的一個(gè)子庫百新,包含了大量的插值函數(shù),如拉格朗日插值庐扫、樣條插值饭望、高維插值等。使用前需要用
from scipy.interpolate import *
引入相應(yīng)的插值函數(shù)形庭。 - 使用格式:
f = scipy.interpolate.lagrange(x, y)
杰妓。這里僅僅展示了一維數(shù)據(jù)的拉格朗日插值的命令,其中x碘勉,y為對應(yīng)的自變量和因變量數(shù)據(jù)。插值完成后桩卵,可以通過f(a)
計(jì)算新的插值結(jié)果验靡。類似的還有樣條插值倍宾、多維數(shù)據(jù)插值等。
(2) unique
- 功能:去除數(shù)據(jù)中的重復(fù)元素胜嗓,得到單值元素列表高职。它既是Numpy庫的一個(gè)函數(shù)(np.unique()),也是Series對象的一個(gè)方法辞州。
- 使用格式:
- np.unique(D)怔锌,D是一維數(shù)據(jù),可以是list变过、array埃元、Series;
- D.unique(),D是Pandas的Series對象媚狰。
- 實(shí)例:求向量A中的單值元素岛杀,并返回相關(guān)索引。
>>> D = pd.Series([1, 1, 2, 3, 5])
>>> D.unique()
array([1, 2, 3, 5], dtype=int64)
>>> np.unique(D)
array([1, 2, 3, 5], dtype=int64)
(3)isnull/notnull
- 功能:判斷每個(gè)元素是否空值/非空值
- 使用格式:
D.isnull()/D.notnull()
崭孤。這里的D要求是Series對象类嗤,返回一個(gè)布爾Series”娉瑁可以通過D[D.isnull()]
或D[D.notnull()]
找出D中的空值/非空值遗锣。
(4)random
- 功能:random是Numpy的一個(gè)子庫(Python本身也自帶了random,但Numpy的更加強(qiáng)大)嗤形,可以用該庫的各種函數(shù)生成服從特定分布的隨機(jī)矩陣精偿,抽樣時(shí)可使用。
- 使用格式:
- np.random.rand(k, m, n,...)生成一個(gè)k×m×n×...隨機(jī)矩陣派殷,其元素均勻分布在區(qū)間(0, 1)上;
- np.random.randn(k, m, n,...)生成一個(gè)k×m×n×...隨機(jī)矩陣还最,其元素服從標(biāo)準(zhǔn)正態(tài)分布。
(5)PCA
- 功能:對指標(biāo)變量矩陣進(jìn)行主成分分析毡惜。使用前需要用
from sklearn.decomposition import PCA
引入該函數(shù)拓轻。 - 使用格式:
model = PCA()
。注意经伙,Scikit-Learn下的PCA是一個(gè)建模式的對象扶叉,也就是說,一般的流程是建模帕膜,然后是訓(xùn)練model.fit(D)
枣氧,D為要進(jìn)行主成分分析的數(shù)據(jù)矩陣,訓(xùn)練結(jié)束后獲取模型的參數(shù)垮刹,如.components_
獲取特征向量达吞,以及.explained_variance_ratio_
獲取各個(gè)屬性的貢獻(xiàn)率等。 - 實(shí)例:使用PCA()對一個(gè)10×4維的隨機(jī)矩陣進(jìn)行主成分分析荒典。
>>>from sklearn.decomposition import PCA
>>>D = np.random.rand(10,4)
>>>pca = PCA()
>>>pca.fit(D)
PCA(copy=True, iterated_power='auto', n_components=None, random_state=None, svd_solver='auto', tol=0.0, whiten=False)
>>>pca.components_ # 返回模型的各個(gè)特征向量
array([[-0.06811883, 0.51265709, 0.77200257, -0.3695329 ],
[-0.37378143, -0.70298054, 0.15371729, -0.58521517],
[ 0.9163908 , -0.18585149, 0.03542612, -0.35274936],
[-0.12599668, 0.45657452, -0.61573372, -0.62971146]])
>>>pca.explained_variance_ratio_ # 返回各個(gè)成分各自的方差百分比
array([0.5431792 , 0.26934177, 0.14385656, 0.04362248])