在networkx中,有没有一种方法可以通过串系数获得前10个节点?

时间:2018-07-08 19:25:06

标签: python graph networkx

我正在根据聚类系数查找前10个节点,到目前为止,我已经尝试过了

clus_coef = []
for node in G.nodes():
    clus_coef.append(nx.clustering(G,node))

我不确定,如何获得前10个节点及其系数?

2 个答案:

答案 0 :(得分:2)

您可以将它们存储在字典中,然后根据类似的值对字典进行排序

import operator

clus_coef = {}
for node in G.nodes():
    clus_coef[node] = nx.clustering(G,node)

sorted_clus_coef = sorted(clus_coef.items(), key=operator.itemgetter(1),reverse=True)

答案 1 :(得分:0)

您首先获得聚类结果clus_coef,然后根据值对字典进行排序。使用Counter.most_common()方法,它将为您排序项目。然后,您可以返回前N个热门项目:

import networkx as nx
clus_coef = nx.clustering(G)

from collections import Counter
c = Counter(clus_coef)
c.most_common(10)