[英]Is there a networkx functiuon to calculate number of edges between communities?
我使用 Louvain 算法進行社區檢測。 然后 position 社區相對於彼此:創建一個新的加權圖,其中每個節點對應一個社區,權重對應於社區之間的邊數。
我的問題是如何有效地計算“社區之間的邊數”。 我知道我可以為每個社區的每兩個節點執行大量 for 循環。
Networkx 中是否有實現此功能的 function ?
有! induced_graph
似乎是您正在尋找的。
此 function 允許您:
像這樣:
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}
誘導圖 function 的文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.