通勤numpy稀疏矩阵点积

时间:2013-10-30 12:33:54

标签: numpy matrix sparse-matrix

据我了解,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()等)的好处?

1 个答案:

答案 0 :(得分:1)

稍微复习矩阵乘法属性:

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),保持内部数据不变。