Výpočet počtu sousedů pro každý uzel
Jak poznat, jestli je daný uzel v síti důležitý? Existuje několik způsobů, jak to posoudit — tady se podíváme na jednu konkrétní metriku: počet sousedů uzlu.
Každý graf NetworkX G nabízí metodu .neighbors(n), která vrátí iterátor sousedních uzlů daného uzlu n. Nejprve si tuto metodu vyzkoušej v IPython Shellu na twitterové síti T — zjisti sousedy uzlu 1. Pomůže ti to pochopit, jak funkce funguje. Tvým úkolem v tomto cvičení je pak napsat funkci, která vrátí všechny uzly mající právě m sousedů.
Toto cvičení je součástí kurzu
Úvod do analýzy sítí v Pythonu
Pokyny k cvičení
- Napiš funkci
nodes_with_m_nbrs()se dvěma parametry —Gam— která vrátí všechny uzly smsousedy. Postupuj takto:- Projdi všechny uzly grafu
G(bez metadat). - Pomocí funkcí
len()alist()spolu s metodou.neighbors()vypočítej celkový počet sousedů uzlunv grafuG.- Pokud se počet sousedů uzlu
nrovnám, přidejndo množinynodesmetodou.add().
- Pokud se počet sousedů uzlu
- Po projití všech uzlů grafu
Gvrať množinunodes.
- Projdi všechny uzly grafu
- Pomocí funkce
nodes_with_m_nbrs()získej všechny uzly, které mají v grafuTprávě 6 sousedů.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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(____)