2017-09-28 3 views
0

私はグラフgを持っており、各ノードに関連付けられた '名前'属性を持っています。私は名前属性で2つのノードを呼び出し、それらの間にエッジを作成したいと思います。しかしノード間のフォームエッジは、属性の参照によって、Pythonでigraphを参照します。

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

おそらく推測したように、名前ベクトル内の位置に基づいて名前のインデックスを作成しています。名前を名前ベクトルの位置に一致させることができます。

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

g.add_edge(v1_position, v2_position) 
関連する問題