在图形工具库中查找已过滤图形的所有未过滤顶点的有效方法?

efficient way of finding all unfiltered vertices of a filtered graph, in graph-tool library?

我正在使用图表工具在图表上分析疾病传播模型。 我想要一个过滤图,它只包含被感染的顶点,这些顶点将感染它们的邻居。

问题是当我过滤受感染的顶点时,其余数据丢失,我知道 GraphView 子类,但问题是将原始图存储在某处对我没有帮助,当我' m 在过滤图的边上迭代,因为我没有访问顶点的等价物,也不能感染它的邻居。 (改变他们的属性。)

有没有有效的方法来帮助我完成任务?

谢谢。

是的,您可以使用 Graph.vertex() 方法访问原始图的顶点。

如果 g 是你的原始图表,u 是过滤后的图表,你可以这样做:

for e in u.edges():
    v = e.source()
    v_orig = g.vertex(v)             # corresponding vertex in unfiltered graph
    for w in v_orig.out_neighbors():
        print(w)                     # neighbors in the unfiltered graph