서브그래프 II
이전 연습 문제에서는 이웃 노드를 추출할 노드 목록을 드렸습니다.
이번에는 특정 메타데이터 속성을 가진 노드와 그 이웃을 직접 추출해 보겠습니다. 이는 리스트 컴프리헨션으로 노드를 찾는 방법을 복습하는 데 도움이 될 거예요. 또한, 기존에 작성한 함수들을 조합하는 연습도 하게 됩니다.
이 연습은 강의의 일부입니다
Python으로 시작하는 네트워크 분석
연습 안내
- 리스트 컴프리헨션을 사용해 메타데이터
'occupation'이'celebrity'인 노드와 그 이웃을 추출하세요:- 리스트 컴프리헨션의 출력 식은
n이며, 반복 변수는n과d두 개입니다. 이터러블은T의 노드 목록(메타데이터 포함으로,data=True를 지정하세요)이고, 조건식은 메타데이터 딕셔너리d의'occupation'키가'celebrity'와 같은지입니다.
- 리스트 컴프리헨션의 출력 식은
- 이들을
T_sub라는 새 서브그래프에 담으세요. 다음을 따르세요:- 노드를 순회하며 각 노드의 이웃을 계산하고,
.union()메서드를 사용해 이웃들을 노드 집합nodeset에 추가하세요. 이 마지막 부분은 미리 작성되어 있습니다. T.subgraph()메서드와nodeset을 함께 사용해T_sub를 계산하세요.
- 노드를 순회하며 각 노드의 이웃을 계산하고,
T_sub를 화면에 그리세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Extract the nodes of interest: nodes
nodes = [n for n, d in ____ if ____ == ____]
# Create the set of nodes: nodeset
nodeset = set(nodes)
# Iterate over nodes
for n in ____:
# Compute the neighbors of n: nbrs
nbrs = ____
# Compute the union of nodeset and nbrs: nodeset
nodeset = nodeset.union(nbrs)
# Compute the subgraph using nodeset: T_sub
T_sub = ____
# Draw T_sub to the screen
____
plt.show()