如何使用 Python 中的 NetworkX 庫計算圖的 k 度節點的平均聚類 c(k)?我能找到的唯一功能是用于節點(部分或全部),另一個用于整個圖。
1 回答
動漫人物
TA貢獻1815條經驗 獲得超10個贊
可以得到度為k的所有節點,然后得到平均聚類度
例子:
>>> G=nx.complete_graph(5)
>>> k=4
>>> nodes_degree_k = [u for u in G.nodes() if G.degree(u) == k]
>>> clustering_coeff = nx.clustering(G, nodes_degree_k)
>>> sum(clustering_coeff.values())/len(clustering_coeff)
1.0
只需對節點進行分組,它就可以擴展到各個程度。
from collections import defaultdict
d = defaultdict(list)
for u in G.nodes():
d[G.degree(u)].append(u)
for degree in d:
clustering_coeff = nx.clustering(G, d[degree])
print(degree, sum(clustering_coeff.values())/len(clustering_coeff))
添加回答
舉報
0/150
提交
取消
