我正在尝试将我的密集矩阵代码转换为与稀疏矩阵共存,因为它应该可以加快速度。对于密集矩阵,我有:
np.dot(np.linalg.matrix_power(TM, steps), p0)
其中TM是一个方形的大矩阵(1024x1024或更大),而steps是我想要自己乘以TM的次数,通常为〜1000。p0是一个总和为1的向量。
我不知道如何处理稀疏矩阵,所以我只剩下:
TM = sp.sparse.csc_matrix(TM)
p0 = sp.sparse.csc_matrix(p0)
for i in range(steps):
p0 = sp.sparse.csr_matrix.dot(TM,p0)
p0 = p0.todense()
当然会导致速度变慢。有没有一种更快的方法可以用稀疏矩阵进行这种大小的矩阵乘法?