代码之家  ›  专栏  ›  技术社区  ›  JungleDiff

Numpy特征向量

  •  1
  • JungleDiff  · 技术社区  · 5 年前

    我想用 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 沃尔夫拉梅尔法的价值观,我得到如下: enter image description here

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

    1 回复  |  直到 5 年前
        1
  •  1
  •   cmxu    5 年前

    所以你得到的是相同的特征向量。只是Wolfram Alpha缩放了特征向量,所以最后一个元素是1(如果你还记得,特征向量是缩放不变的)。让我们看看结果的第一栏。如果你跑,

    np.array([-0.94849917, 0.0095255, 0.31663637])/0.31663637
    

    你会得到

    array([-2.99554713,  0.0300834 ,  1.        ])