首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一个网络函数计算社区之间的边数?

是否有一个网络函数计算社区之间的边数?
EN

Stack Overflow用户
提问于 2020-08-02 03:49:39
回答 1查看 853关注 0票数 2

我用过算法来检测社区。然后定位社区之间的相对位置:创建一个新的加权图,其中每个节点对应于一个社区,权重对应于社区之间的边数。

我的问题是如何有效地计算“社区之间的边缘数”。我知道我可以为每个社区的每一个两个节点做大量的for循环。

Networkx中是否有实现此功能的函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-25 12:28:20

的确有!函数似乎就是你要找的东西。

此功能允许您:

  1. 得到作为节点的社区诱导图。
  2. 诱导图中节点间的权重等于原始图中节点之间的边数。

就像这样:

代码语言:javascript
复制
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个社区的分区示例:

代码语言:javascript
复制
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函数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63212209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档