python - Python:从 igraph 文件中读取邻接矩阵
问题描述
我的问题很简单,但我真的在网上找不到!
我有一个加权有向图的邻接矩阵,如下所示:
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 是我的矩阵。
解决方案
我假设你的机器上已经安装了 igraph 和 cairo。如果没有,并且您使用的是 Mac,请参阅此帖子。您要使用的方法Read_Adjacency()
记录在此处。要阅读您的图表,我使用了类似以下 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=
到方法的参数中。
推荐阅读
- node.js - 使用 atom 在 Mac 上保存 node.js 文件的问题
- flutter - 如何制作具有屏幕尺寸的动画?
- html - 容器内文本的对齐方式
- numpy - np.where:“ValueError:操作数无法与形状一起广播(38658637,)(9456,)”
- django - 如何链接 Django 查询集并按这些查询集的不同字段对结果进行排序
- mysql - 完成mysql回调函数
- powershell - Powershell FileSystemWatcher 在一段时间后停止通知
- c# - 将嵌套对象导出到 CSV
- python - Converting dates less than 1970 in python using pandas
- reactjs - React Native:当您离开一个组件时,该组件是否会被卸载?