import numpy as np
Data = np.array([[2.5, 2.4], [0.5, 0.7], [2.2, 2.9], [1.9, 2.2], [3.1, 3.0], [2.3, 2.7], [2, 1.6], [1, 1.1], [1.5, 1.6],
[1.1, 0.9]])
x1 = sum(Data[:, 0]) / 10
y1 = sum(Data[:, 1]) / 10
DataAdjust = Data - [x1, y1]
cov1 = np.array(np.cov(DataAdjust[:, 0], Data[:, 1]))
eig1, eig2 = np.linalg.eig(cov1)
if eig1[0] > eig1[1]:
a = eig2[:, 0]
else:
a = eig2[:, 1]
b = a.T
c = np.dot(DataAdjust, a)
print(c)
[-0.82797019 1.77758033 -0.99219749 -0.27421042 -1.67580142 -0.9129491
0.09910944 1.14457216 0.43804614 1.22382056]
DataAdjust
[[ 0.69 0.49]
[-1.31 -1.21]
[ 0.39 0.99]
[ 0.09 0.29]
[ 1.29 1.09]
[ 0.49 0.79]
[ 0.19 -0.31]
[-0.81 -0.81]
[-0.31 -0.31]
[-0.71 -1.01]]
cov1
[[0.61655556 0.61544444]
[0.61544444 0.71655556]]



