【问题标题】:Python eigenvectorsPython 特征向量
【发布时间】:2011-05-10 16:32:13
【问题描述】:
eigenvalues, eigenvectors = linalg.eig(K)

如何仅打印 len(K) 的特征向量。所以如果有K,2x2矩阵,我得到4个特征向量,如果有len(K)=2,我怎么能只打印其中的2个......

非常感谢

【问题讨论】:

  • 为什么不print eigenvectors[:len(K)]
  • 这个矩阵 K 并不总是 2x2....它是随机的 4x4,....
  • 我还可以添加,打印特征向量[:len(K)],如果只有 2x2 矩阵,这将不起作用,它打印 4 个元素,而不仅仅是 2....
  • @thaking 牛仔慢点。你不了解特征向量。在继续之前回到你的数学课本。
  • 好吧,好像没听懂。我认为你应该写print eigenvectors[: eigenvalues.index(<index of first almost zero eigenvalue>)]

标签: python eigenvector


【解决方案1】:

您得到两个长度为 2 的向量,而不是四个向量。例如:

In [1]: import numpy as np

In [2]: K=np.random.normal(size=(2,2))

In [3]: eigenvalues, eigenvectors = np.linalg.eig(K)

In [4]: eigenvectors
Out[4]: 
array([[ 0.83022467+0.j        ,  0.83022467+0.j        ],
       [ 0.09133956+0.54989461j,  0.09133956-0.54989461j]])

In [5]: eigenvectors.shape
Out[5]: (2, 2)

第一个向量是eigenvectors[:,0],第二个是eigenvectors[:,1]

【讨论】:

  • 是的,但是如何只打印 1 个向量?
  • 谢谢我在我的代码中误解了一些东西,所以我有点困惑,谢谢。
  • 特征向量是列,而不是行;
【解决方案2】:

来自手册:

归一化特征向量 对应特征值w[i] 是列v[:,i]

【讨论】:

    猜你喜欢
    • 2014-05-11
    • 1970-01-01
    • 2020-05-09
    • 2018-12-30
    • 2015-06-30
    • 2020-07-31
    • 1970-01-01
    • 2019-04-16
    • 1970-01-01
    相关资源
    最近更新 更多