サブグラフ II
前の演習では、特定のノードの近傍を抽出していただきました。
今回は、特定のメタデータを持つノードとその近傍を抽出する演習をもう一度行います。これは、リスト内包表記でノードを見つける方法の復習にもなります。さらに、これまでに書いた関数を組み合わせて使う力も養えます。
この演習はコースの一部です
Pythonで学ぶネットワーク分析入門
演習の手順
- リスト内包表記を使って、メタデータ
'occupation'が'celebrity'のノードとその近傍を抽出します。- リスト内包表記の 出力式 は
n、反復変数 はnとdの2つです。イテラブル はTのノード一覧(メタデータを含めるためにdata=Trueを指定できます)で、条件式はメタデータ辞書dの'occupation'キーが'celebrity'に等しいことです。
- リスト内包表記の 出力式 は
- 抽出したノードを新しいサブグラフ
T_subに入れます。次の手順で行います。- 各ノードについて近傍を計算し、
.union()メソッドを使ってそれらをノード集合nodesetに追加します。この部分はすでに用意してあります。 nodesetとT.subgraph()メソッドを使って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()