Вычисление количества соседей для каждого узла
Как определить, является ли узел важным? Существует несколько способов, и здесь мы рассмотрим одну метрику: количество соседей узла.
Каждый граф NetworkX G предоставляет метод .neighbors(n), который возвращает итератор узлов-соседей для узла n. Для начала попробуйте вызвать этот метод в IPython Shell для сети Twitter T, чтобы получить соседей узла 1 — это поможет вам разобраться в том, как работает метод. Затем ваша задача в этом упражнении — написать функцию, которая возвращает все узлы, имеющие ровно m соседей.
Это упражнение является частью курса
Введение в анализ сетей на Python
Инструкции к упражнению
- Напишите функцию
nodes_with_m_nbrs()с двумя параметрами —Gиm— которая возвращает все узлы, имеющиеmсоседей. Для этого:- Переберите все узлы в
G(не включая метаданные). - Используйте функции
len()иlist()вместе с методом.neighbors(), чтобы вычислить общее количество соседей узлаnв графеG.- Если количество соседей узла
nравноm, добавьтеnво множествоnodesс помощью метода.add().
- Если количество соседей узла
- После перебора всех узлов в
Gверните множествоnodes.
- Переберите все узлы в
- Используйте функцию
nodes_with_m_nbrs(), чтобы получить все узлы с 6 соседями в графеT.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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(____)