Python: 从 igraph 文件中读取邻接矩阵
Python: read adjacency matrix from file for igraph
我的问题很简单,但是网上实在找不到!
我有一个加权有向图的邻接矩阵,如下所示:
1 2 3 4
5 2 4 6
3 5 6 2
4 6 7 8
所以第i列第j行的元素,表示节点i和j之间link的权重
如何将此文件(可以是 txt 或 csv 格式)读取为矩阵以在 igraph 中使用?
我想找到集群的数量。所以,我想要这样的东西:
g.community_multilevel()
如果 g 是我的矩阵。
我假设您已经在 machine 上安装了 igraph 和 cairo。如果不是,并且您在 mac 上,请参阅 . The method you want to use is Read_Adjacency()
which is documented 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")
并且您可以访问权重以验证它们是否已通过如下命令正确读取:g.es[3]
给出结果
igraph.Edge(<igraph.Graph object at 0x10f614bf0>, 3, {'weighted': 4.0})
OP 提到了文本与 csv 格式,区别在于您将哪个分隔符作为字符串包含在方法的 sep=
参数中。
我的问题很简单,但是网上实在找不到!
我有一个加权有向图的邻接矩阵,如下所示:
1 2 3 4
5 2 4 6
3 5 6 2
4 6 7 8
所以第i列第j行的元素,表示节点i和j之间link的权重
如何将此文件(可以是 txt 或 csv 格式)读取为矩阵以在 igraph 中使用? 我想找到集群的数量。所以,我想要这样的东西: g.community_multilevel() 如果 g 是我的矩阵。
我假设您已经在 machine 上安装了 igraph 和 cairo。如果不是,并且您在 mac 上,请参阅 Read_Adjacency()
which is documented 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")
并且您可以访问权重以验证它们是否已通过如下命令正确读取:g.es[3]
给出结果
igraph.Edge(<igraph.Graph object at 0x10f614bf0>, 3, {'weighted': 4.0})
OP 提到了文本与 csv 格式,区别在于您将哪个分隔符作为字符串包含在方法的 sep=
参数中。