我有一个图g
,它有一个与每个节点相关联的'name'属性。我想通过名称属性调用两个节点,并在它们之间创建边缘。
from igraph import *
g = Graph(4)
print g
IGRAPH UN-- 4 0 --
+ attr: name (v)
g.vs["name"]
[10, 39, 76, 6]
然而,当我尝试像
这样的东西时g.add_edge(g.vs[76], g.vs[39])
我得到的顶点索引超出范围。如果我可以将名称与索引位置匹配,只要速度很快,我会很满意一个通过它的索引调用节点的解决方案,因为我的图形会变得非常大,我不知道它会变得多慢。
理想情况下,我只是按照“名称”属性查找节点,并在它们之间形成边缘。
答案 0 :(得分:1)
您正在根据名称向量中的位置索引名称,正如您可能猜到的那样。您可以将名称与名称向量中的位置匹配:
v1_position = g.vs['name'].index(76)
v2_position = g.vs['name'].index(39)
g.add_edge(v1_position, v2_position)