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

标签 python igraph

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

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

1 2
2 1 
1 3

其中数字 1,2,3 是节点的 ID(或名称)。 iGraph(python 版本)在哪里存储这些 id? 我尝试从属性 nameid 中检索这些 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/

相关文章:

python - 在 Python 2.7 中引发异常后未释放对象

python - 设置 Dataframe 的索引时出现 KeyError

python - py-corenlp - 类型错误 : string indices must be integers

r - 如何在R中删除图中的顶点?

R - 顶点属性 - 'Inappropriate value given in set.vertex.attribute.'

python igraph 边作为节点图

python - Scipy:稀疏矩阵是否支持高级索引?

python - 使用 CUDA 进行希尔伯特变换

r - 如何在不在 igraph 中创建重复边的情况下生成基于随机属性的边?

r - 如何修改该图的布局?