Aan de slagGa gratis aan de slag

Aantal buren per knooppunt berekenen

Hoe bepaal je of een knooppunt belangrijk is of niet? Daar zijn verschillende manieren voor. Hier kijk je naar één maatstaf: het aantal buren dat een knooppunt heeft.

Elke NetworkX-grafiek G heeft een methode .neighbors(n) die een iterator teruggeeft met de knooppunten die buren zijn van knooppunt n. Begin met deze methode in de IPython-shell op het Twitter-netwerk T om de buren van knooppunt 1 op te halen. Zo raak je vertrouwd met hoe de functie werkt. Daarna schrijf je in deze oefening een functie die alle knooppunten teruggeeft die m buren hebben.

Deze oefening maakt deel uit van de cursus

Introductie tot netwerkanalyse in Python

Cursus bekijken

Oefeninstructies

  • Schrijf een functie nodes_with_m_nbrs() met twee parameters — G en m — die alle knooppunten teruggeeft die m buren hebben. Doe dit als volgt:
    • Loop over alle knooppunten in G (zonder de metadata).
    • Gebruik de functies len() en list() samen met de methode .neighbors() om het totale aantal buren te berekenen dat knooppunt n in graaf G heeft.
      • Als het aantal buren van knooppunt n gelijk is aan m, voeg n toe aan de set nodes met de methode .add().
    • Geef na het itereren over alle knooppunten in G de set nodes terug.
  • Gebruik je functie nodes_with_m_nbrs() om alle knooppunten op te halen die 6 buren hebben in de graaf T.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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(____)
Code bewerken en uitvoeren