通过属性在节点之间形成边缘在python

时间:2017-09-28 01:37:14

标签: python igraph

我有一个图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]) 

我得到的顶点索引超出范围。如果我可以将名称与索引位置匹配,只要速度很快,我会很满意一个通过它的索引调用节点的解决方案,因为我的图形会变得非常大,我不知道它会变得多慢。

理想情况下,我只是按照“名称”属性查找节点,并在它们之间形成边缘。

1 个答案:

答案 0 :(得分:1)

您正在根据名称向量中的位置索引名称,正如您可能猜到的那样。您可以将名称与名称向量中的位置匹配:

v1_position = g.vs['name'].index(76)
v2_position = g.vs['name'].index(39)

g.add_edge(v1_position, v2_position)