우노
[Graph] Matrix의 Node 별 NNZ 구하기 본문
Matrix data
SNAP Stanford는 다양한 Graph dataset을 제공한다.
해당 포스트에서는 Networks with ground-truth communities의 하위 Graph dataset을 Matrix dataset으로 변환해 사용했으며, 변환하기 위해선 몇가지 전처리가 필요하다.
Matrix dataset이 준비됐다면, 이제 Matrix의 Node 별 NNZ를 계산해 볼 것이다.
- 위 과정에서 전처리한 Matrix dataset은 대칭행렬이기 때문에
- 행 기준 or 열 기준 Node 별 NNZ 값은 동일하다.
Matrix의 Node 별 NNZ 구하기
inputfile = "./com-dblp.matrix.txt"
node_nnz = {}
with open(inputfile,"r") as rf:
for line in rf:
# 행이 같은 node의 nnz의 개수를 구한다.
node = line.split(" ")[0]
if (node in node_nnz):
node_nnz[node] += 1
else:
node_nnz[node] = 1
node_nnz
# {'0': 16,
# '1': 91,
# '2': 26,
# '1766': 35,
# '12501': 30,
# '18905': 35,
# '19425': 67,
# '48500': 24,
# ...
# ...}
print("Node 별 NNZ 평균 : ", sum(node_nnz.values()) / len(node_nnz))
# Node 별 NNZ 평균 : 6.622089062697111
# Node 별 NNZ
for node, nnz in enumerate(node_nnz.values()):
print("node {} : {}".format(node+1,nnz))
# node 1 : 16
# node 2 : 91
# node 3 : 26
# node 4 : 35
# node 5 : 30
# node 6 : 35
# ...
# ...
# node 317075 : 2
# node 317076 : 2
# node 317077 : 2
# node 317078 : 2
# node 317079 : 2
# node 317080 : 2
'Data > Graph & Matrix' 카테고리의 다른 글
[Graph] Multiple Source BFS Search (0) | 2021.07.27 |
---|---|
[Graph] SNAP Stanford 의 Undirected Graph data 를 Matrix data 로 변환하는 방법 (0) | 2020.11.30 |
[Graph] Graphalytics의 Graph data를 Matrix data로 변환하는 방법 (0) | 2020.10.07 |
[Matrix] 희소행렬(SparseMatrix) - COO, CSR, CSC (0) | 2020.07.06 |
[Matrix] MATLAB을 사용한 정방형 Sparse Matrix 만들기 (0) | 2020.07.06 |
Comments