스파스 행렬이란 대부분의 값이 0인 행렬을 뜻하며
아래와 같이 표현될 수 있다.
(0, 1) 0.5
(0, 3) 0.8
(1, 2) 0.7
(2, 3) 0.6
여기서 위 값들이 의미하는 바는
(행, 열) 값
이며 대부분의 행, 열로 표기되지 않은 값들은 0이다.
밀집 행렬은 모든 값을 저장하는 행렬로써, Sparse 행렬을 Dense로 변환하면 다음과 같다.
[[0.0, 0.5, 0.0, 0.8],
[0.0, 0.0, 0.7, 0.0],
[0.0, 0.0, 0.0, 0.6]]
Sparse 행렬을 Dense 행렬로 변환하는 예시 코드이다.
import numpy as np
from scipy.sparse import csr_matrix
# 스파스 행렬 생성
row = np.array([0, 0, 1, 2])
col = np.array([1, 3, 2, 3])
data = np.array([0.5, 0.8, 0.7, 0.6])
sparse_matrix = csr_matrix((data, (row, col)), shape=(3, 4))
print("Sparse Matrix:")
print(sparse_matrix)
# 밀집 행렬로 변환
dense_matrix = sparse_matrix.todense()
print("\nDense Matrix:")
print(dense_matrix)
출력 :
Sparse Matrix:
(0, 1) 0.5
(0, 3) 0.8
(1, 2) 0.7
(2, 3) 0.6
Dense Matrix:
[[0. 0.5 0. 0.8]
[0. 0. 0.7 0. ]
[0. 0. 0. 0.6]]