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

Python-linalg.eigsh如何找到*所有*特征向量?

  •  1
  • SuperCiocia  · 技术社区  · 6 年前

    我使用文档页面上的示例代码 linalg.eigsh , here :

    import scipy.sparse.linalg as sp
    import numpy as np
    
    id = np.eye(13)
    vals, vecs = sp.eigsh(id, k=6)
    
    len(vals)
    # 6
    len(vecs)
    # 13
    

    6 特征值( k=6 全部的 )特征向量。
    在文档中,当它谈到 k ,上面写着:

    比N。不可能计算出矩阵的所有特征向量。

    事实上,我认为Lanczos方法的速度 eighsh

    那么它如何返回所有的特征向量呢?

    2 回复  |  直到 6 年前
        1
  •  0
  •   user2357112    6 年前

    属于 vecs ,但你在数排。 有六列,如预期的那样。

        2
  •  1
  •   CJR    6 年前

    vecs[:, n]