Python:从文件中读取邻接图以供igraph使用

时间:2018-06-28 03:45:41

标签: python igraph adjacency-matrix

我的问题很简单,但是我真的无法在网上找到它!

我有一个加权有向图的邻接矩阵,如:

1    2    3    4    
5    2    4    6  
3    5    6    2
4    6    7    8

第i列和第j行的元素显示了节点i和j之间的链接的权重。

如何读取此文件(可以是txt或csv格式)作为在igraph中使用的矩阵? 我想找到群集的数量。所以,我想这样:     g.community_multilevel() 如果g是我的矩阵。

1 个答案:

答案 0 :(得分:1)

我假设您已经在计算机上安装了igraph和cairo。如果不是,并且您使用的是Mac,请参见this post。您要使用的方法是Read_Adjacency(),该方法已记录在here中。要阅读您的图表,我使用了以下python代码:

import igraph 
from igraph import * 
g=Graph.Read_Adjacency(f="soAdj",sep=None, comment_char='#',attribute="weighted")
plot(g, "readAdjSoExample.pdf",layout="circle")

,情节将给出以下内容:     enter image description here

,您可以访问权重以通过g.es[3]这样的命令来验证它们是否正确读取: igraph.Edge(<igraph.Graph object at 0x10f614bf0>, 3, {'weighted': 4.0}) OP提到了文本vs csv格式,不同之处在于您将分隔符作为字符串包含在方法的sep=参数中。