所以我用clustering来获得图中所有节点的聚类系数,像这样
G=nx.complete_graph(40)
clus_coeff = nx.clustering(G)
现在,我要删除包含这些节点的最大的集团。我只想删除按聚类系数排序的前5个节点的派系。我不确定如何进行
答案 0 :(得分:3)
首先,如果要从整个图形中删除最大的集团,您将最终得到一个空图形。
第二,您可以使用networkx的clique_containing_node函数来获取包含特定节点的集团列表,然后像这样删除它们
clus_coeff = nx.clustering(G)
for node in clus_coeff.keys():
#Check if the node is present in the updated graph
if G.has_node(node):
#Find all cliques containing the node
all_cliques = nx.cliques_containing_node(G,node)
#If no cliques found, then continue
if len(all_cliques)<1:
continue
elif len(all_cliques)==1:
#If only one clique is present
largest_cliq = all_cliques
else:
#Find the larges sized clique
largest_cliq = max(all_cliques, key=len)
#Remove the nodes
for v in largest_clq:
G.remove_node(v)