Sparse Matrix#

[16]:
import numpy as np
from scipy.sparse import csr_matrix, bsr_matrix, csc_matrix, dia_matrix, coo_matrix

Compressed Sparse Row Matrix#

[27]:
row_idxs = [0, 0, 1, 2, 3, 3]
col_idxs = [0, 1, 2, 3, 2, 3]
values = [1, 2, 3, 4, 5, 6]

csr_matrix((values, (row_idxs, col_idxs)), shape=(4,4)).toarray()
[27]:
array([[1, 2, 0, 0],
       [0, 0, 3, 0],
       [0, 0, 0, 4],
       [0, 0, 5, 6]])
[47]:
row_idxs = [0, 0, 1, 2, 3, 3]
col_idxs = [0, 1, 2, 3, 3, 3]
values = [1, 1, 1, 1, 1, 1]

csr_matrix((values, (row_idxs, col_idxs)), shape=(4,4)).toarray()
[47]:
array([[1, 1, 0, 0],
       [0, 0, 1, 0],
       [0, 0, 0, 1],
       [0, 0, 0, 2]])

Block Sparse Row Matrix#

[28]:
row_idxs = [0, 0, 1, 2, 3, 3]
col_idxs = [0, 1, 2, 3, 2, 3]
values = [1, 2, 3, 4, 5, 6]

bsr_matrix((values, (row_idxs, col_idxs)), shape=(4,4)).toarray()
[28]:
array([[1, 2, 0, 0],
       [0, 0, 3, 0],
       [0, 0, 0, 4],
       [0, 0, 5, 6]])
[44]:
row_idxs = [0, 0, 1, 2, 3, 3]
col_idxs = [0, 1, 2, 3, 3, 3]
values = [1, 1, 1, 1, 1, 1]

bsr_matrix((values, (row_idxs, col_idxs)), shape=(4,4)).toarray()
[44]:
array([[1, 1, 0, 0],
       [0, 0, 1, 0],
       [0, 0, 0, 1],
       [0, 0, 0, 2]])

COOrdinate Matrix#

[43]:
row_idxs = [0, 0, 1, 2, 3, 3]
col_idxs = [0, 1, 2, 3, 3, 3]
values = [1, 1, 1, 1, 1, 1]

coo_matrix((values, (row_idxs, col_idxs)), shape=(4,4)).toarray()
[43]:
array([[1, 1, 0, 0],
       [0, 0, 1, 0],
       [0, 0, 0, 1],
       [0, 0, 0, 2]])

Diagonal Matrix#

[31]:
offset = 0 ## kind of diagonal location
values = [1, 2, 3, 4, 5, 6]

dia_matrix((values, offset), shape=(4,4)).toarray()
[31]:
array([[1, 0, 0, 0],
       [0, 2, 0, 0],
       [0, 0, 3, 0],
       [0, 0, 0, 4]])
[32]:
offset = 1
values = [1, 2, 3, 4, 5, 6]

dia_matrix((values, offset), shape=(4,4)).toarray()
[32]:
array([[0, 2, 0, 0],
       [0, 0, 3, 0],
       [0, 0, 0, 4],
       [0, 0, 0, 0]])
[37]:
offset = [0, -1, 2]
values = np.array([
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [3, 5, 8, 2]
])

dia_matrix((values, offset), shape=(4,4)).toarray()
[37]:
array([[1, 0, 8, 0],
       [5, 2, 0, 2],
       [0, 6, 3, 0],
       [0, 0, 7, 4]])
[ ]: