我用过算法来检测社区。然后定位社区之间的相对位置:创建一个新的加权图,其中每个节点对应于一个社区,权重对应于社区之间的边数。
我的问题是如何有效地计算“社区之间的边缘数”。我知道我可以为每个社区的每一个两个节点做大量的for循环。
Networkx中是否有实现此功能的函数?
发布于 2020-11-25 12:28:20
的确有!函数似乎就是你要找的东西。
此功能允许您:
就像这样:
induced_graph = community.induced_graph(p1, giant_component, weight='WEIGHT')
for u,v,a in induced_graph.edges(data=True):
print(u,v,a)这将打印Community_a Community_b {'WEIGHT': NumberOfLinks}
下面是一个包含7个社区的分区示例:
0 1 {'WEIGHT': 8782}
0 0 {'WEIGHT': 15336}
0 3 {'WEIGHT': 9858}
0 4 {'WEIGHT': 4306}
0 2 {'WEIGHT': 1216}
0 7 {'WEIGHT': 1}
0 6 {'WEIGHT': 2}
0 5 {'WEIGHT': 5}
1 1 {'WEIGHT': 10116}
1 3 {'WEIGHT': 6728}
1 4 {'WEIGHT': 4030}
1 2 {'WEIGHT': 667}
1 5 {'WEIGHT': 38}
1 7 {'WEIGHT': 1}
1 6 {'WEIGHT': 1}
2 3 {'WEIGHT': 605}
2 4 {'WEIGHT': 348}
2 2 {'WEIGHT': 470}
3 3 {'WEIGHT': 13921}
3 4 {'WEIGHT': 2805}
3 5 {'WEIGHT': 45}
3 6 {'WEIGHT': 2}
3 7 {'WEIGHT': 1}
4 4 {'WEIGHT': 3273}
4 5 {'WEIGHT': 5}
5 5 {'WEIGHT': 37}
6 6 {'WEIGHT': 1}
7 7 {'WEIGHT': 1}医生们用于induced_graph函数
https://stackoverflow.com/questions/63212209
复制相似问题