[실습] 차수 :: Python 네트워크 분석 - mindscale
Skip to content

[실습] 차수

노드의 차수(degree)란 노드에 연결된 에지의 수를 말한다.

import networkx as nx
import matplotlib.pyplot as plt

에르되시-레니 그래프를 생성한다. 노드의 수는 30개이고, 가능한 에지 중에 10%만 무작위로 포함한다.

G = nx.erdos_renyi_graph(30, 0.1)
nx.draw(G)

0번 노드의 차수를 확인한다.

G.degree(0)
4

0번 노드의 이웃을 확인한다.

list(G.neighbors(0))
[2, 11, 12, 18]

차수의 히스토그램을 그려본다.

deg = [n for d, n in nx.degree(G)]
result = plt.hist(deg, bins=range(max(deg) + 1))

방향 그래프

크기가 30인 척도 없는(scale free) 그래프를 무작위로 생성한다.

F = nx.scale_free_graph(30)
nx.draw(F)

차수의 히스토그램을 그려본다. 척도 없는 네트워크는 차수가 매우 큰 노드가 존재하는 것이 특징이다. (긴 꼬리)

deg = [n for d, n in nx.degree(F)]
result = plt.hist(deg, bins=range(0, max(deg) + 5, 5))

0번 노드의 차수는 6이다. 즉, 에지는 6개이다.

F.degree(0)
6

이중에 나가는 에지의 수는 2개

F.out_degree(0)
2

들어오는 에지의 수는 4개이다.

F.in_degree(0)
4