如何解决python中矩形矩阵的稀疏矩阵矩阵乘法
我正在使用大小为n x m的稀疏矩阵A的python。 我正在使用来自scipy的csr_matrix格式,并将矩阵包装为linearoperator,因此可以使用slinalg程序包。
我需要计算A ^ T * A乘积。但是,我无法找到合适的例程来实现这一目标。 我可以使用linearoperator的matmat函数,但这需要我将矩阵转换为密集格式。
有什么方法可以在python中将两个稀疏矩阵相乘(即使使用不同的包),而又不转换为密集矩阵吗?我的矩阵很大,由于内存需求,转换会导致崩溃。
解决方法
SciPy
具有非常有效的内置方法,可用于' sparse csr_matrix '的矩阵乘法,而无需将其转换为密集矩阵。
您可以直接使用以下内容:
import scipy
data,row,column = ...
A = scipy.sparse.csr_matrix((data,(row,column)),shape = (...))
matmul = A.T*A
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。