import numpy as np
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])
ax = np.average(x)
ay = np.average(y)
xc = x-ax
yc = y-ay
D = np.array([xc, yc]).T
C = np.array(np.cov(xc, yc))
val, vecs = np.linalg.eig(C)
if val[0] > val[1]:
mtx = (np.array([vecs[0, 0], vecs[1, 0]])).T
else:
mtx = (np.array([vecs[0, 1], vecs[1, 1]])).T
Fd = np.dot(D, mtx)
print(Fd)
[-0.82797019
1.77758033
-0.99219749
-0.27421042
-1.67580142
-0.9129491
0.09910944
1.14457216
0.43804614
1.22382056]