我想知道,函数Read_Edgelist 在哪里?存储边缘列表中的原始 ID?或者在哪个属性名下?
假设我正在阅读如下边列表:
1 2
2 1
1 3
其中数字 1,2,3
是节点的 ID(或名称)。 iGraph(python 版本)在哪里存储这些 id?
我尝试从属性 name
或 id
中检索这些 ID,但它不起作用,因为这两个属性似乎必须明确定义。
最佳答案
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()
创建一个有四个节点(0、1、2、3)的图并打印
[[0, 0, 0, 0]
[0, 0, 0, 1]
[0, 0, 0, 0]
[0, 0, 0, 0]]
查看此 answer如果您不想创建“中间”节点。
虽然以下对于具有从 0 开始的连续节点 ID 的图形来说是不必要的,但可以使用 VertexSeq
访问节点 ID和 Vertex
:
for v in g.vs:
print v.index # node id
关于python - 从边缘列表创建图形时的初始节点 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38569831/