pythonigraph/Networkx:在连通图中查找特定节点的集群

pythonigraph/Networkx:在连通图中查找特定节点的集群,python,graph,cluster-analysis,igraph,networkx,Python,Graph,Cluster Analysis,Igraph,Networkx,我需要在连接图中找到满足以下条件的节点群集: 节点有一组特定的事件边缘(这里不需要详细信息,我可以做到) 如果这些节点满足上述条件且相距不超过x边/邻居,则此类节点的簇被视为簇 我可以将其作为一个新函数编写,但我想知道networkx或python igraph库中是否已经存在一些东西 亲切的问候 我相信没有什么可以直接(在networkx中)获得您指定的内容,因为您的需求非常具体,但肯定有一些帮助功能。这是我能想到的使用Networkx的最简单方法 条件1将特定事件边缘列表与g.边缘(节点

我需要在连接图中找到满足以下条件的节点群集:

  • 节点有一组特定的事件边缘(这里不需要详细信息,我可以做到)

  • 如果这些节点满足上述条件且相距不超过x边/邻居,则此类节点的簇被视为簇

我可以将其作为一个新函数编写,但我想知道networkx或python igraph库中是否已经存在一些东西


亲切的问候

我相信没有什么可以直接(在networkx中)获得您指定的内容,因为您的需求非常具体,但肯定有一些帮助功能。这是我能想到的使用Networkx的最简单方法

条件1将特定事件边缘列表与g.边缘(节点)进行比较:

条件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)

你的要求相当具体。你的第二点不是那么容易实现的。我不太了解igraph,但我很确定Networkx没有内置的。我想这对igraph来说并不难,只需计算特定顶点的x-邻域即可。但实际上,我不完全确定你的意思。
for node in cluster_nodes:
    for n in cluster_nodes:
        if (nx.shortest_path(G,node,n) > x):
            cluster_node.remove(node)