3

据我了解,numpy.sparse.csr_sparse.dot(other)确实从右侧other乘以我的稀疏矩阵:

A = numpy.sparse.csr_sparse(something)
B = numpy.matrix(something)
C = A.dot(B)                     # C = A*B

如何在B*A不失去将矩阵保存为稀疏矩阵(即.todense()等)的好处的情况下对这两个矩阵进行通勤?

4

1 回答 1

2

矩阵乘法属性的一点复习:

D = B * A
D.T = A.T * B.T
D = (A.T * B.T).T

这导致了明显的:

D = A.T.dot(B.T).T

请注意,CSR 和 CSC 矩阵的转置非常快,因为它只是改变了形状和类型(从 CSR 到 CSC,或从 CSC 到 CSR),而内部数据保持不变。

于 2013-10-30T16:07:12.070 回答