[실습] 차수
노드의 차수(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