我有一个稀疏矩阵,其中稀疏项超过50%。我正在尝试使用scipy.sparse和numpy.matmul计算其矩阵乘法。具有讽刺意味的是,在密集和稀疏矩阵上,numpy.matmul的乘法时间都比scipy.sparse短。
import scipy
import time
start=time.time()
SS=scipy.sparse.csr_matrix(grad_shaped)*scipy.sparse.csr_matrix(numpy.transpose(grad_shaped))
SS1=SS.todense()
end=time.time()
print(end-start)
start=time.time()
SS2=numpy.matmul(grad_shaped[0],numpy.transpose(grad_shaped[0]))
end=time.time()
print(end-start)
我有float数据矩阵。零以0.0表示。它会导致更多时间吗?我已经尝试了不同大小的矩阵。随着矩阵大小的增加,numpy.matmul仍然比scipy.sparse.csr更快