# 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]])

[ ]: