In [1]:
from scipy.sparse import csr_matrix, lil_matrix, hstack, vstack

In [2]:
l = [[0, 1, 2],
     [3, 0, 4],
     [0, 0, 0]]

In [3]:
csr = csr_matrix(l)
lil = lil_matrix(l)

In [4]:
print(hstack([csr, lil]).toarray())


[[0 1 2 0 1 2]
 [3 0 4 3 0 4]
 [0 0 0 0 0 0]]

In [5]:
print(type(hstack([csr, lil])))


<class 'scipy.sparse.coo.coo_matrix'>

In [6]:
print(type(hstack([csr, lil], format='csr')))


<class 'scipy.sparse.csr.csr_matrix'>

In [7]:
print(vstack([csr, lil]).toarray())


[[0 1 2]
 [3 0 4]
 [0 0 0]
 [0 1 2]
 [3 0 4]
 [0 0 0]]

In [8]:
print(type(vstack([csr, lil])))


<class 'scipy.sparse.coo.coo_matrix'>

In [9]:
print(type(vstack([csr, lil], format='csr')))


<class 'scipy.sparse.csr.csr_matrix'>

In [10]:
print(vstack([csr, lil[:2]]).toarray())


[[0 1 2]
 [3 0 4]
 [0 0 0]
 [0 1 2]
 [3 0 4]]

In [11]:
# print(hstack([csr, lil[:2]]))
# ValueError: blocks[0,:] has incompatible row dimensions. Got blocks[0,1].shape[0] == 2, expected 3.