我有一个大的二维ndarray
,A
,我想计算SVD检索最大特征值和相关的特征向量对。看看NumPy文档,NumPy似乎只能计算完整的SVD(numpy.linalg.svd
),而SciPy的方法正好满足我的需要(scipy.sparse.linalg.svds
),但是对于稀疏矩阵,我不想执行A
的转换,因为这需要额外的计算时间。在
到目前为止,我一直直接在A
上使用SciPysvds
,但是文档不鼓励将ndarray
传递给这些方法。在
有没有一种方法可以用接受ndarray
对象的方法来执行这个任务?在
Tags:
如果
svds
与密集的A
数组一起工作,那么继续使用它。你不需要把它转换成任何东西。svds
完成所有需要的调整。在文件上说
但是什么是
LinearOperator
?它是一个包装器,可以执行矩阵积。对于密集数组,A.dot
符合条件。在查看},并生成一个新的线性属性器。在
svds
的代码。第一件事是A = np.asarray(A)
如果A
不是线性算子或稀疏矩阵。然后它获取A.dot
和{这个函数中的稀疏矩阵没有什么特别之处。重要的是有一个兼容的矩阵乘积。在
看看这些时间:
直接使用
A
最快。转换没有帮助,即使它们在定时循环之外。在相关问题 更多 >
编程相关推荐