Aan de slagBegin gratis

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

Bekijk cursus

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.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan 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