파이썬 NetworkX에서 지원하는 다양한 그래프 매트릭스 유형을 설명해드립니다.

파이썬 NetworkX는 그래프를 다루기 위한 강력한 라이브러리입니다. NetworkX를 사용하면 다양한 그래프 매트릭스 유형을 손쉽게 다룰 수 있습니다. 이번 포스트에서는 NetworkX에서 지원하는 다양한 그래프 매트릭스 유형에 대해 알아보겠습니다.

1. 인접 행렬 (Adjacency Matrix)

인접 행렬은 그래프의 노드들 간의 연결 관계를 행렬로 나타내는 방법입니다. 이 행렬은 대칭 행렬로서, 노드 간의 연결이 있으면 1로 표시되고, 연결이 없으면 0으로 표시됩니다. NetworkX에서는 to_numpy_matrix 함수를 사용하여 그래프의 인접 행렬을 얻을 수 있습니다.

import networkx as nx

G = nx.Graph()
G.add_edge('A', 'B')
G.add_edge('B', 'C')
G.add_edge('C', 'A')

adj_matrix = nx.to_numpy_matrix(G)
print(adj_matrix)

2. 간선 목록 (Edge List)

간선 목록은 그래프의 간선들을 리스트로 나타내는 방법입니다. 각각의 간선은 (시작 노드, 끝 노드)로 표현됩니다. NetworkX에서는 to_edgelist 함수를 사용하여 그래프의 간선 목록을 얻을 수 있습니다.

import networkx as nx

G = nx.Graph()
G.add_edge('A', 'B')
G.add_edge('B', 'C')
G.add_edge('C', 'A')

edge_list = nx.to_edgelist(G)
print(edge_list)

3. 인접 리스트 (Adjacency List)

인접 리스트는 각 노드마다 이와 연결된 모든 노드들을 리스트로 나타내는 방법입니다. NetworkX에서는 to_dict_of_lists 함수를 사용하여 그래프의 인접 리스트를 얻을 수 있습니다.

import networkx as nx

G = nx.Graph()
G.add_edge('A', 'B')
G.add_edge('B', 'C')
G.add_edge('C', 'A')

adj_list = nx.to_dict_of_lists(G)
print(adj_list)

NetworkX를 사용하면 다양한 그래프 매트릭스 유형을 편리하게 다룰 수 있습니다. 다양한 유형의 그래프 매트릭스를 활용하여 자신의 그래프 분석 문제를 자유롭게 해결해보세요.

참고자료:

#networkx #그래프매트릭스