从边列表创建图形时的初始节点的ID

M.M*_*M.M 6 python igraph

我想知道,Read_Edgelist函数在哪里存储边缘列表中的原始id?或者在哪个属性名称下?

假设我正在阅读边缘列表,如:

1 2
2 1 
1 3
Run Code Online (Sandbox Code Playgroud)

其中数字1,2,3是节点的ID(或名称).iGraph(python版本)在哪里存储这些ID?我试着检索从属性这些ID name或者id,但没有奏效,因为那些两个属性,貌似,必须明确界定.

Ulr*_*ern 3

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

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

import igraph as ig
g = ig.Graph.Read_Edgelist("edgelist.txt")
print g.get_adjacency()
Run Code Online (Sandbox Code Playgroud)

创建一个具有四个节点 (0, 1, 2, 3) 的图并打印

[[0, 0, 0, 0]
 [0, 0, 0, 1]
 [0, 0, 0, 0]
 [0, 0, 0, 0]]
Run Code Online (Sandbox Code Playgroud)

如果您不想创建“中间”节点,请参阅此答案。

VertexSeq虽然对于具有以 0 开头的连续节点 id 的图来说,以下内容是不必要的,但可以使用和访问节点 id Vertex

for v in g.vs:
  print v.index   # node id
Run Code Online (Sandbox Code Playgroud)