始める無料で始める

各ノードの近傍ノード数を求める

ノードが重要かどうかを評価するにはどうすればよいでしょうか?いくつか方法がありますが、ここでは 1 つの指標、つまりノードが持つ近傍ノードの数を見ていきます。

あらゆる NetworkX グラフ G は、ノード n の近傍ノードを返すイテレータである .neighbors(n) メソッドを提供しています。まずは IPython Shell で Twitter ネットワーク T を使い、ノード 1 の近傍ノードを取得して、この関数の使い方に慣れましょう。その後、この演習では、近傍ノードが m のすべてのノードを返す関数を書くのがあなたの仕事です。

この演習はコースの一部です

Pythonで学ぶネットワーク分析入門

コースを見る

演習の手順

  • nodes_with_m_nbrs() という関数を作成し、引数は Gm の 2 つ、戻り値は近傍ノードが m のすべてのノードにしてください。次のように実装します。
    • G のすべてのノード(メタデータは含めません)を反復処理します。
    • .neighbors() メソッドに len()list() を組み合わせ、グラフ G におけるノード n の近傍ノードの合計数を計算します。
      • ノード n の近傍ノード数が m と等しければ、集合 nodes.add() メソッドで n を追加します。
    • G のすべてのノードを反復し終えたら、集合 nodes を返します。
  • 作成した nodes_with_m_nbrs() 関数を使って、グラフ T の中で近傍ノードが 6 のすべてのノードを取得してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Define nodes_with_m_nbrs()
def ____:
    """
    Returns all nodes in graph G that have m neighbors.
    """
    nodes = set()

    # Iterate over all nodes in G
    for n in ____:

        # Check if the number of neighbors of n matches m
        if ____ == ____:

            # Add the node n to the set
            ____

    # Return the nodes with m neighbors
    return nodes

# Compute and print all nodes in T that have 6 neighbors
six_nbrs = ____
print(____)
コードを編集して実行