i = np.random.randint(0, nrows - 1, numdense)
j = np.random.randint(0, ncols - 1, numdense)
data = np.random.random(numdense)
data[data <= 0.5] = -1
data[data > 0.5] = 1
ij = np.vstack((i, j))
return scipy.sparse.coo_matrix((data, ij), shape=(nrows, ncols))
A = generate_random_sparse_array(4, 300000, 1000)
B = generate_random_sparse_array(300000, 5, 1000)
C = A * B
print(C.todense())
Умножение матриц для разреженных матриц в Python