如何使用Python中的NetworkX库计算图的度数为k的节点的平均聚类c(k)?
我可以找到的唯一功能是针对节点(部分或全部),而针对整个图的另一功能。

最佳答案

您可以获取度为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))

10-06 10:38