Python中的稀疏矩阵SVD

6 投票
4 回答
9563 浏览
提问于 2025-04-16 01:12

有没有人知道怎么在Python中对稀疏矩阵进行奇异值分解(svd)操作?看起来在scipy.sparse.linalg这个库里没有提供这样的功能。

4 个回答

3

你可以试试 scipy.sparse.linalg.svd,不过它的说明文档还在不断完善中,所以内容比较简略。

4

听起来你需要的是 sparsesvd!这个工具是把SVDLIBC高效地封装在Python里(在内存中不会多做数据复制)。

只需要运行“easy_install sparsesvd”就可以安装了。

3

你可以使用Divisi这个库来实现这个功能;在它的主页上有这样的介绍:

  • 这是一个用Python编写的库,它使用了一个C语言的库(叫做SVDLIBC)来进行稀疏SVD操作,采用的是Lanczos算法。其他的数学计算则是通过NumPy来完成的。

撰写回答