Obliczanie liczby sąsiadów dla każdego węzła
Jak ocenić, czy dany węzeł jest ważny? Istnieje kilka sposobów, a tutaj przyjrzysz się jednej z miar: liczbie sąsiadów danego węzła.
Każdy graf G w bibliotece NetworkX udostępnia metodę .neighbors(n), która zwraca iterator węzłów będących sąsiadami węzła n. Na początek użyj tej metody w powłoce IPython na sieci Twittera T, aby pobrać sąsiadów węzła 1 – dzięki temu zapoznasz się z jej działaniem. Następnie twoim zadaniem w tym ćwiczeniu jest napisanie funkcji, która zwraca wszystkie węzły mające dokładnie m sąsiadów.
To ćwiczenie jest częścią kursu
Wprowadzenie do analizy sieci w Pythonie
Instrukcje do ćwiczenia
- Napisz funkcję o nazwie
nodes_with_m_nbrs(), która przyjmuje dwa parametry –Gim– i zwraca wszystkie węzły mającemsąsiadów. W tym celu:- Przejdź przez wszystkie węzły w
G(bez uwzględniania metadanych). - Użyj funkcji
len()ilist()razem z metodą.neighbors(), aby obliczyć całkowitą liczbę sąsiadów węzłanw grafieG.- Jeśli liczba sąsiadów węzła
njest równam, dodajndo zbiorunodesza pomocą metody.add().
- Jeśli liczba sąsiadów węzła
- Po przejściu przez wszystkie węzły w
Gzwróć zbiórnodes.
- Przejdź przez wszystkie węzły w
- Użyj funkcji
nodes_with_m_nbrs(), aby pobrać wszystkie węzły mające 6 sąsiadów w grafieT.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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(____)