【发布时间】:2018-10-08 17:53:38
【问题描述】:
我正在使用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),它确实返回 6,但它给了我 13 个(即所有)特征向量。
在文档中,当它谈到 k 时,它说:
所需的特征值和特征向量的数量。 k 必须更小 大于 N。不可能计算矩阵的所有特征向量。
事实上,我认为 eighsh 底层的 Lanczos 方法的速度是由于它只找到了 eigvectors 的一个子集。
那么它如何返回所有的特征向量呢?
【问题讨论】:
标签: python sparse-matrix eigenvalue eigenvector