我正在使用文档页面上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
时,它说:
The number of eigenvalues and eigenvectors desired. k must be smaller than N. It is not possible to compute all eigenvectors of a matrix.
事实上,我认为Lanczos方法的速度,潜在的eighsh
是因为它只找到了eigvector的一个子集。你知道吗
那么它如何返回所有的特征向量呢?你知道吗
不是,向量是一个13×6的矩阵。特征向量n为:
你把结果解释错了。特征向量是
vecs
的列,但您正在计算行数。vecs
有六列,如预期的那样。你知道吗相关问题 更多 >
编程相关推荐