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
Övningsinstruktioner
- Skriv en funktion som heter
nodes_with_m_nbrs()med två parametrar –Gochm– och som returnerar alla noder medmgrannar. Gör så här:- Iterera över alla noder i
G(utan att inkludera metadata). - Använd funktionerna
len()ochlist()tillsammans med.neighbors()-metoden för att beräkna det totala antalet grannar som nodenni grafenGhar.- Om antalet grannar till noden
när lika medm, lägger du tillni mängdennodesmed hjälp av.add()-metoden.
- Om antalet grannar till noden
- När du har itererat över alla noder i
G, returnerar du mängdennodes.
- Iterera över alla noder i
- Använd din
nodes_with_m_nbrs()-funktion för att hämta alla noder som har 6 grannar i grafenT.
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(____)