import numpy as np
from scipy.sparse import csr_matrix
dense_a = np.arange(16).reshape(4,4)
dense_b = np.arange(16).reshape(4,4)
np.fill_diagonal(dense_a, 0)
np.fill_diagonal(dense_b, 0)
print(dense_a)
print(dense_a*dense_b)
print(dense_a@dense_b.T)
print(np.dot(dense_a, dense_b.T))
sparse_a = csr_matrix(dense_a)
sparse_b = csr_matrix(dense_b)
sparse_rez1 = sparse_a.multiply(sparse_a)
sparse_rez2 = sparse_a.dot(sparse_b.T)
print(sparse_rez1.todense())
print(csr_matrix.toarray(sparse_rez2))
[[ 0 1 2 3] [ 4 0 6 7] [ 8 9 0 11] [12 13 14 0]] [[ 0 1 4 9] [ 16 0 36 49] [ 64 81 0 121] [144 169 196 0]] [[ 14 33 42 41] [ 33 101 109 132] [ 42 109 266 213] [ 41 132 213 509]] [[ 14 33 42 41] [ 33 101 109 132] [ 42 109 266 213] [ 41 132 213 509]] [[ 0 1 4 9] [ 16 0 36 49] [ 64 81 0 121] [144 169 196 0]] [[ 14 33 42 41] [ 33 101 109 132] [ 42 109 266 213] [ 41 132 213 509]]