Python: scipy.sparse медленнее, чем numpy.matmul для разреженной матрицы - PullRequest
0 голосов
/ 28 июня 2019

У меня разреженная матрица с более чем 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)

У меня есть матрица данных с плавающей точкой. Нули присутствуют как 0.0. Есть ли какая-то разница, ведущая к увеличению времени? Я пробовал это с переменным размером матриц. По мере увеличения размера матрицы numpy.matmul по-прежнему быстрее, чем scipy.sparse.csr

...