Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Napisz funkcję o nazwie nodes_with_m_nbrs(), która przyjmuje dwa parametry – G i m – i zwraca wszystkie węzły mające m sąsiadów. W tym celu:
    • Przejdź przez wszystkie węzły w G (bez uwzględniania metadanych).
    • Użyj funkcji len() i list() razem z metodą .neighbors(), aby obliczyć całkowitą liczbę sąsiadów węzła n w grafie G.
      • Jeśli liczba sąsiadów węzła n jest równa m, dodaj n do zbioru nodes za pomocą metody .add().
    • Po przejściu przez wszystkie węzły w G zwróć zbiór nodes.
  • Użyj funkcji nodes_with_m_nbrs(), aby pobrać wszystkie węzły mające 6 sąsiadów w grafie T.

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(____)
Edytuj i uruchom kod