Coordinate Matrix, COO 란

less than 1 minute read

이 포스팅은 Matt Eding 블로그 포스팅을 참조하였습니다.

COO (Cordinate Matrix) 란 행, 열 좌표에 대한 subarray 와 element value 의 array, 3가지 array 를 사용하여 데이터를 표현합니다.

다음 그림과 같이 사용됩니다.

COO Matrix

array는 3개가 존재하고, element value 의 수만큼의 길이를 갖습니다.
array 들의 동일한 인덱스로, row 와 column 에 해당하는 value 를 갖습니다.
Row 의 array 를 r, Column 의 array 를 c, Element value 의 array 를 d 라고 하면 ,
행렬 $M$ 은 다음과 같이 표현할 수 있습니다.
\(M_{r[x],c[x]} =d[x]\)

Python 에서는 다음과 같이 사용할 수 있습니다.

from scipy import sparse
data = [2,5,3]
row = [3,2,4]
col = [1,2,2]
coo = sparse.coo_matrix((data, (row, col)), shape=(5, 5))

전체 element 의 수가 N 이라면, 3N 만으로 전체행렬을 저장할 수 있습니다.
element 의 수에 비례하여 행렬을 저장할 수 있으므로 Sparse Matrix 를 저장하기 적합합니다.
하지만 이 방식이 완전히 효율적으로 저장하는 방식은 아닙니다.

+ 예시

추가 예정@@@

Comments