In [1]:
import numpy as np
from scipy.sparse import csr_matrix, csc_matrix, coo_matrix, lil_matrix
In [2]:
n = 1000
In [3]:
np.random.seed(0)
d = np.ones(n, dtype=int)
i = np.random.randint(0, n, n)
j = np.random.randint(0, n, n)
In [4]:
print(d[:10])
print(i[:10])
print(j[:10])
In [5]:
%%timeit
csr = csr_matrix((d, (i, j)), (n, n))
In [6]:
%%timeit
csc = csc_matrix((d, (i, j)), (n, n))
In [7]:
%%timeit
coo = coo_matrix((d, (i, j)), (n, n))
In [8]:
%%timeit
csr = coo_matrix((d, (i, j)), (n, n)).tocsr()
In [9]:
%%timeit
csc = coo_matrix((d, (i, j)), (n, n)).tocsc()
In [10]:
%%timeit
lil = lil_matrix((n, n))
for d_, i_, j_ in zip(d, i, j):
lil[i_, j_] = d_
In [11]:
%%timeit
lil = lil_matrix((n, n))
In [12]:
%%timeit
for d_, i_, j_ in zip(d, i, j):
pass
In [13]:
dij = list(zip(d, i, j))
print(dij[:5])
In [14]:
%%timeit
lil = lil_matrix((n, n))
for d, i, j in dij:
lil[i, j] = d
In [15]:
%%timeit
d_, i_, j_ = zip(*dij)
coo = coo_matrix((d_, (i_, j_)), (n, n))
In [16]:
%%timeit
dij_ = []
for t in dij:
dij_.append(t)
d_, i_, j_ = zip(*dij_)
coo = coo_matrix((d_, (i_, j_)), (n, n))
In [17]:
%%timeit
d_ = []
i_ = []
j_ = []
for d, i, j in dij:
d_.append(d)
i_.append(i)
j_.append(j)
coo = coo_matrix((d_, (i_, j_)), (n, n))
In [18]:
a = coo_matrix((d, (i, j)), (n, n)).toarray()
print(a.shape)
In [19]:
%%timeit
csr = csr_matrix(a)
In [20]:
%%timeit
csc = csc_matrix(a)
In [21]:
%%timeit
coo = coo_matrix(a)
In [22]:
%%timeit
lil = lil_matrix(a)
In [23]:
%%timeit
lil = coo_matrix(a).tolil()