Я пытаюсь сравнить скорость как для bmat, так и для hstack, когда дело доходит до конкатенации координатных матриц, которые огромны.
Мой код:
from scipy.sparse import bmat, coo_matrix, hstack
import timeit
import numpy as np
a = np.add(*np.indices((1000,1000)))
A = coo_matrix(a)
B = coo_matrix(a)
t = timeit.timeit("hstack([A,B]).toarray()", "from __main__ import A, B, hstack", number= 2000)
print(t)
tt = timeit.timeit("bmat([[A,B]])", "from __main__ import A, B, bmat", number = 2000)
print(tt)
Из моего эксперимента кажется, что bmat имеет более высокую скорость обработки по сравнению с hstack.
85.89499111475607
71.0423545148451
Я хотел бы знать, правильный ли мой подход к тестированию, или есть что-то, что делает hstack лучше, когда coo_matrix огромен? Если бы я использовал bmat или hstack, из эксперимента кажется, что bmat лучше использовать, но я хотел бы знать различия.