У меня есть следующие данные примера:
my_network_data = [(39, 118), (179, 14), (35, 118), (225, 14), (64, 118), (6, 14), (187, 14), (161, 14), (42, 14), (53, 14), (47, 1), (127, 14), (14, 118), (3, 1), (175, 14), (21, 118), (5, 14), (18, 14), (122, 1), (137, 14), (157, 14), (19, 14), (19, 118), (118, 14), (30, 118), (159, 14), (124, 118), (56, 14), (161, 118), (100, 14), (53, 118), (136, 118), (41, 14), (4, 14), (217, 14), (32, 14), (175, 118), (104, 14), (82, 118), (4, 118), (222, 14), (201, 118), (136, 14), (86, 1), (153, 14), (195, 14)]
Если я строю график с использованием networkx, я делаю следующее:
import networkx as nx
g = nx.Graph()
g.add_edges_from(my_network_data)
print(nx.info(g))
Выход:
Name:
Type: Graph
Number of nodes: 41
Number of edges: 45
Average degree: 2.1951
График выглядит так:
nx.draw(g, with_labels=True)
Как получить с помощью networkx информацию о том, что есть 2 отличительных кластера и какие элементы находятся в этих кластерах?
Рекомендуемый вывод:
[[1, 86, 47, 3, 122], [14, 118, 136, 53, 179, 30, 100, 41, 35, 4, 19, 82, 104, 159, 64, 32, 124, 14, 39, 4, 137, 136, 187, 217, 153, 5, 53, 19, 42, 175, 18, 21, 222, 175, 6, 195, 56, 157, 201, 161, 161, 127, 225]]
Я не уверен, что networkx - лучшая библиотека для этой задачи. Если у вас есть лучшее предложение (с использованием Python), я готов его использовать.