НачатьНачать бесплатно

Подграфы 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()
Редактировать и запускать код