import numpy as np from numpy.linalg import eig x = np.array([2.5, 0.5, 2.2, 1.9, 3.1, 2.3, 2, 1, 1.5, 1.1]) y = np.array([2.4, 0.7, 2.9, 2.2, 3.0, 2.7, 1.6, 1.1, 1.6, 0.9]) x_eve = np.sum(x)/10 y_eve = np.sum(y)/10 x_norm = np.array(x)-x_eve y_norm = np.array(y)-y_eve #协方差矩阵 x = x[:,np.newaxis] y = y[:,np.newaxis] C = np.hstack((x, y)) C_cov = np.cov(C.T) #求特征值和特征向量 eigenvalues, engenvectors = eig(C_cov) #选取特征向量 klarge_index = eigenvalues.argsort()[-1:][::-1] k_engenvectors = engenvectors[klarge_index] #FinalData A = np.hstack((x, y)) F = np.dot(A, k_engenvectors.T) print(F)
[[-0.06974528] [-0.17568836] [-0.64069662] [-0.32943358] [-0.10412843] [-0.42587355] [ 0.17946095] [-0.13082312] [-0.15947575] [ 0.08399995]]
print(C_cov)
[[0.61655556 0.61544444] [0.61544444 0.71655556]]
print(eigenvalues)
[0.0490834 1.28402771]
print(engenvectors)
[[-0.73517866 -0.6778734 ] [ 0.6778734 -0.73517866]]



