繁体   English   中英

Python-IGraph / Networkx:在连接的图中查找特定节点的群集

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM