我需要在连接图中找到满足几个条件的节点集群:
节点有一组特定的事件边缘(此处不需要详细信息)
如果节点满足上述条件并且不超过x边缘/邻居,则此类节点的集群被视为集群
我可以把它写成一个新函数,但我想知道networkx或python-igraph库中是否存在某些东西?
亲切的问候!
答案 0 :(得分:1)
我相信没有什么可以直接得到您指定的内容(在networkx中),因为您的需求非常具体,但肯定有一些帮助功能。这是我能想到使用Networkx的最简单方法。
条件1 将特定事件边缘列表与g.edges(节点)进行比较:
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)