Подграфы II
В предыдущем упражнении мы передали вам список узлов, соседей которых нужно было извлечь.
Попробуем ещё одно упражнение: на этот раз вы будете извлекать узлы с определённым свойством метаданных и их соседей. Это упражнение напомнит вам о том, как использовать генераторы списков для поиска узлов, а также поможет развить навык компоновки уже знакомых функций.
Это упражнение является частью курса
Введение в анализ сетей на Python
Инструкции к упражнению
- С помощью генератора списков извлеките узлы, у которых метаданные
'occupation'равны'celebrity', вместе с их соседями:- Выражение-результат генератора списка — это
n, а переменных-итераторов две:nиd. Итерируемый объект — список узлов графаT(включая метаданные; чтобы их получить, укажитеdata=True), а условное выражение проверяет, равен ли ключ'occupation'словаря метаданныхdзначению'celebrity'.
- Выражение-результат генератора списка — это
- Поместите результат в новый подграф
T_sub. Для этого:- Выполните итерацию по узлам, вычислите соседей каждого узла и добавьте их в множество узлов
nodesetс помощью метода.union(). Последний шаг уже выполнен за вас. - Используйте
nodesetвместе с методомT.subgraph(), чтобы вычислитьT_sub.
- Выполните итерацию по узлам, вычислите соседей каждого узла и добавьте их в множество узлов
- Отобразите
T_subна экране.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Extract the nodes of interest: nodes
nodes = [n for n, d in ____ if ____ == ____]
# Create the set of nodes: nodeset
nodeset = set(nodes)
# Iterate over nodes
for n in ____:
# Compute the neighbors of n: nbrs
nbrs = ____
# Compute the union of nodeset and nbrs: nodeset
nodeset = nodeset.union(nbrs)
# Compute the subgraph using nodeset: T_sub
T_sub = ____
# Draw T_sub to the screen
____
plt.show()