Numpy特征向量

Numpy特征向量,numpy,Numpy,我试图使用numpy的linalg.eig()函数来获取特征向量和特征值 import numpy as np M = np.array([[168.04570515, 1.38100609, -48.60662242], [1.38100609, 16.49647382, 9.18370965], [-48.60662242, 9.18370965, 38.37842496]]) eigenvalue, eigenvector = np

我试图使用
numpy
linalg.eig()
函数来获取特征向量和特征值

import numpy as np
M = np.array([[168.04570515, 1.38100609, -48.60662242],
              [1.38100609, 16.49647382, 9.18370965], 
              [-48.60662242, 9.18370965, 38.37842496]])
eigenvalue, eigenvector = np.linalg.eig(M)

>>>eigenvalue
array([184.25812834,  28.91371368,   9.74876191])

>>>eigenvector
array([[-0.94849917, -0.26039343, -0.18040119],
   [ 0.0095255 , -0.59267178,  0.80538775],
   [ 0.31663637, -0.7621912 , -0.56462906]])
但是,当我将相同的
M
值输入WolframAlpha时,我得到以下结果:


为什么我会得到不同的特征向量?

所以你实际上得到的是相同的特征向量。只是Wolfram Alpha对特征向量进行了缩放,所以最后一个元素是1(如果你还记得的话,特征向量是缩放不变的)。让我们看一下结果的第一列。如果你跑步

np.array([-0.94849917, 0.0095255, 0.31663637])/0.31663637
你会得到

array([-2.99554713,  0.0300834 ,  1.        ])
如果你注意到这就是Wolfram Alpha报告的内容。你也可以检查另外两个