[英]Python-IGraph / Networkx: Find clusters of specific nodes in connected graph
我需要在连接图中找到满足多个条件的节点簇:
节点具有一组特定的入射边缘(这里不需要详细信息,我可以这样做)
如果节点满足上述条件并且相隔不超过x个边缘/相邻节点,则将此类节点的群集视为群集
我可以将其写为新函数,但想知道在networkx或python-igraph库中是否已经存在?
亲切的问候!
我相信没有什么可以直接在networkx中获得您指定的内容,因为您的需求非常具体,但是肯定有一些帮助功能。 这是我想到使用Networkx的最简单方法。
条件1将特定入射边缘的列表与g.edges(node)进行比较:
cluster_nodes = []
for node in G:
if set(specific_edges) == set (g.edges(node)): # the set is used to make sure that order is ignored.
cluster_nodes.append(node)
条件2给定x作为集群中任何2个节点之间的最大可接受距离
for node in cluster_nodes:
for n in cluster_nodes:
if (nx.shortest_path(G,node,n) > x):
cluster_node.remove(node)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.