Глубокое погружение — сеть Twitter
Сейчас вы подробнее изучите сеть Twitter — это поможет закрепить материал, пройденный ранее. Для начала найдите узлы, которые могут максимально эффективно распространять сообщения среди большого числа людей, находящихся на расстоянии одного шага.
Библиотека NetworkX уже импортирована как nx.
Это упражнение является частью курса
Введение в анализ сетей на Python
Инструкции к упражнению
- Напишите функцию
find_nodes_with_highest_deg_cent(G), которая возвращает узел (или узлы) с наибольшей центральностью по степени. Выполните следующие шаги:- Вычислите центральность по степени для
G. - Найдите максимальное значение центральности по степени с помощью функции
max(), применив её кlist(deg_cent.values()). - Выполните итерацию по словарю центральностей по степени —
deg_cent.items(). - Если значение центральности по степени
vтекущего узлаkравноmax_dc, добавьте его в множество узлов.
- Вычислите центральность по степени для
- Используйте созданную функцию, чтобы найти узел (или узлы) с наибольшей центральностью по степени в
T. - Напишите оператор утверждения, проверяющий, что узел (или узлы) определён корректно. Этот шаг уже выполнен — нажмите «Отправить ответ», чтобы увидеть результат!
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Define find_nodes_with_highest_deg_cent()
def find_nodes_with_highest_deg_cent(G):
# Compute the degree centrality of G: deg_cent
deg_cent = ____
# Compute the maximum degree centrality: max_dc
max_dc = ____
nodes = set()
# Iterate over the degree centrality dictionary
for k, v in ____:
# Check if the current value has the maximum degree centrality
if ____ == ____:
# Add the current node to the set of nodes
____
return nodes
# Find the node(s) that has the highest degree centrality in T: top_dc
top_dc = ____
print(top_dc)
# Write the assertion statement
for node in top_dc:
assert nx.degree_centrality(T)[node] == max(nx.degree_centrality(T).values())