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
Oefeninstructies
- Schrijf een functie
nodes_with_m_nbrs()met twee parameters —Genm— die alle knooppunten teruggeeft diemburen hebben. Doe dit als volgt:- Loop over alle knooppunten in
G(zonder de metadata). - Gebruik de functies
len()enlist()samen met de methode.neighbors()om het totale aantal buren te berekenen dat knooppuntnin graafGheeft.- Als het aantal buren van knooppunt
ngelijk is aanm, voegntoe aan de setnodesmet de methode.add().
- Als het aantal buren van knooppunt
- Geef na het itereren over alle knooppunten in
Gde setnodesterug.
- Loop over alle knooppunten in
- Gebruik je functie
nodes_with_m_nbrs()om alle knooppunten op te halen die 6 buren hebben in de graafT.
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(____)