Kom igångKom igång gratis

Beräkna antalet grannar för varje nod

Hur avgör man om en nod är viktig eller inte? Det finns flera sätt att göra det, och här ska du titta på ett mått: antalet grannar som en nod har.

Varje NetworkX-graf G har en .neighbors(n)-metod som returnerar en iterator med de noder som är grannar till noden n. Börja med att använda den här metoden i IPython Shell på Twitter-nätverket T för att hämta grannarna till noden 1. Det ger dig en känsla för hur funktionen fungerar. Sedan är din uppgift i den här övningen att skriva en funktion som returnerar alla noder med m grannar.

Den här övningen är en del av kursen

Introduktion till nätverksanalys i Python

Visa kurs

Övningsinstruktioner

  • Skriv en funktion som heter nodes_with_m_nbrs() med två parametrar – G och m – och som returnerar alla noder med m grannar. Gör så här:
    • Iterera över alla noder i G (utan att inkludera metadata).
    • Använd funktionerna len() och list() tillsammans med .neighbors()-metoden för att beräkna det totala antalet grannar som noden n i grafen G har.
      • Om antalet grannar till noden n är lika med m, lägger du till n i mängden nodes med hjälp av .add()-metoden.
    • När du har itererat över alla noder i G, returnerar du mängden nodes.
  • Använd din nodes_with_m_nbrs()-funktion för att hämta alla noder som har 6 grannar i grafen T.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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(____)
Redigera och kör kod