2016-07-25 44 views
6

我在想,函数Read_Edgelist从边缘列表中存储原始ID的位置在哪里?或根据哪个属性名称?从边缘列表创建图形时的初始节点的ID

假设我读的边缘名单,如:在数字1,2,3是节点的ID(或名称)

1 2 
2 1 
1 3 

。 iGraph(python版本)在哪里存储这些ID? 我试图从属性nameid检索这些Id,但它不起作用,因为这两个属性看起来必须明确定义。

+0

'my_graph.es'应该显示您的曲线图的边序列 –

+0

我试过了,使用'source'和'target'我可以检索节点。但我仍然不知道这些原始ID存储在哪里! –

+0

@ M.M,我编辑了我的答案,以添加有关存储节点ID的信息。 –

回答

2

Read_Edgelist假设节点ids是从0到m的连续整数,其中m是边缘列表中的最大整数。所以“不需要存储节点ID”。

例如,如果你的edgelist.txt是1 3,此代码

import igraph as ig 
g = ig.Graph.Read_Edgelist("edgelist.txt") 
print g.get_adjacency() 

创建具有四个节点的曲线图(0,1,2,3)和打印

[[0, 0, 0, 0] 
[0, 0, 0, 1] 
[0, 0, 0, 0] 
[0, 0, 0, 0]] 

参见本answer如果您不想要创建“中间”节点。

虽然以下是不必要的具有连续节点ID从0开始的曲线图,人们可以使用VertexSeqVertex和访问节点ID:

for v in g.vs: 
    print v.index # node id