bipartite キーワード
動画で Eric は 'bipartite' キーワードを紹介しました。このキーワードはノードのメタデータ辞書の一部で、ノードを追加するときにも、追加した後にも設定できます。ただし、定義上、二部グラフでは同じパーティション内のノード同士をつなぐことはできない点に注意してください。
ここでは、二部グラフで指定したパーティションに属するノードを返す関数を作成します。今回扱う Github の二部グラフでは、対象となるパーティションは 'projects' と 'users' です。
この演習はコースの一部です
Python 中級ネットワーク解析
演習の手順
- 二部グラフ
Gとそのpartitionを引数に取り、そのpartitionに属するノードだけを返す関数get_nodes_from_partition()を作成してください。forループを使って、メタデータではなくGのすべてのノードを反復処理します。- 現在のノードのメタデータ辞書から
'bipartite'キーワードにアクセスします。これがpartitionと等しければ、現在のノードをリストnodesに追加します。
- 作成した
get_nodes_from_partition()関数とlen()関数を組み合わせて、次を出力してください。Gの'projects'パーティションにあるノードの数。Gの'users'パーティションにあるノードの数。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Define get_nodes_from_partition()
def ____:
# Initialize an empty list for nodes to be returned
nodes = []
# Iterate over each node in the graph G
for n in ____:
# Check that the node belongs to the particular partition
if G.nodes[n]['____'] == ____:
# If so, append it to the list of nodes
____
return nodes
# Print the number of nodes in the 'projects' partition
print(____(get_nodes_from_partition(____, '____')))
# Print the number of nodes in the 'users' partition
print(____(____))