Вычисление матрицы смежности
Теперь потренируемся использовать матрицы и разреженное матричное умножение для вычисления проекций! В этом упражнении вы воспользуетесь оператором матричного умножения @, который был введён в Python 3.5.
Мы продолжаем работу с графом Американской революции. Два раздела, которые нас интересуют, — это 'people' и 'clubs'.
Это упражнение является частью курса
Средний уровень сетевого анализа на Python
Инструкции к упражнению
- Получите список людей и список клубов из графа
Gс помощью функцииget_nodes_from_partition(), которую вы определили в предыдущей главе. Функция принимает два параметра: граф и раздел. - Вычислите биматрицу смежности с помощью
nx.bipartite.biadjacency_matrix(), задав параметрrow_orderравнымpeople_nodes, а параметрcolumn_order— равнымclubs_nodes. Не забудьте также передать графG. - Вычислите проекцию «пользователь — пользователь», умножив (с помощью оператора
@) биматрицу смежностиbi_matrixна её транспонированную версиюbi_matrix.T.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Get the list of people and list of clubs from the graph: people_nodes, clubs_nodes
people_nodes = ____
clubs_nodes = ____
# Compute the biadjacency matrix: bi_matrix
bi_matrix = ____(____, row_order=____, column_order=____)
# Compute the user-user projection: user_matrix
user_matrix = ____
print(user_matrix)