[英]iGraph: selecting vertices connected to
假设我有以下图形:
g = ig.Graph([(0,1), (0,2), (2,3), (3,4), (4,2), (2,5), (5,0), (6,3), (5,6)], directed=False)
g.vs["name"] = ["Alice", "Bob", "Claire", "Dennis", "Esther", "Frank", "George"]
我想看看鲍勃与谁有联系。 鲍勃仅与一个人爱丽丝相连。 但是,如果尝试找到边缘:
g.es.select(_source=1)
>>> <igraph.EdgeSeq at 0x7f15ece78050>
我只是得到上述答复。 我如何从上面推断出顶点索引是什么。 或者,如果那不可能,我如何找到连接到Bob的顶点?
这似乎有效。 关键字参数由属性(例如_source
和_target
)和运算符(例如eq
(=))组成。 而且似乎还需要检查边缘的源和目标(即使它是无向图),在过滤边缘之后,可以使用列表推导遍历边缘并提取源或目标 :
connected_from_bob = [edge.target for edge in g.es.select(_source_eq=1)]
connected_to_bob = [edge.source for edge in g.es.select(_target_eq=1)]
connected_from_bob
# []
connected_to_bob
# [0]
然后与Bob相连的顶点是两个列表的并集:
connected_with_bob = connected_from_bob + connected_to_bob
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.