[실습] 데이터 읽기
import networkx as nx
NetworkX는 다양한 형식의 파일에서 그래프를 읽거나 쓸 수 있다. 자세한 내용은 링크를 참고.
인접 리스트 형식
인접 리스트(adjacency list)는 가장 단순한 그래프 저장 형식으로서 단순한 텍스트 파일이다.
만약 노드 1
에서 노드 2
와 노드 3
으로 가는 에지가 있다면 파일에 다음과 같은 행을 추가한다.
1 2 3
github.adj 파일을 다운로드 받아, 메모장 등으로 열어서 첫 줄을 보면 다음과 같다.
lines = open('github.adj').readlines()
lines[0]
'u1 u3124 u1814 u5888 u9483 u1527 u9271 u8196 u2653 u4534 u2253 u127 u3071 u3166\n'
읽기
github.adj
파일을 그래프로 읽어들이려면 다음과 같이 한다.
G = nx.read_adjlist('github.adj')
방향 그래프로 읽으려면 create_using=nx.DiGraph
를 추가한다.
D = nx.read_adjlist('github.adj', create_using=nx.DiGraph)
u1
노드의 후속 노드들을 확인한다.
list(D.successors('u1'))
['u3124', 'u1814', 'u5888', 'u9483', 'u1527', 'u9271', 'u8196', 'u2653', 'u4534', 'u2253', 'u127', 'u3071', 'u3166']
쓰기
nx.write_adjlist(D, 'github2.adj')