在Python的igraph中读取不连通图
我想知道用Python的igraph库读取一个不连通的无向图的最佳方法。比如说,如果我有一个简单的图,0和1是相连的,而2是一个没有连接到任何其他节点的孤立节点。我尝试用边列表格式(Graph.Read_Edgelist(...))来读取这个图,但因为每一行都必须是一个边,所以像下面这样的格式是不能被接受的:
0 1
2
我在想,邻接矩阵是否是我唯一或最好的选择(我能通过这种表示法让它工作)?我更希望有一种格式,可以通过查看数据来理解它(而矩阵格式真的很难做到这一点)。
提前谢谢你们!
1 个回答
1
有一种叫做LGL格式的东西,它可以用来表示孤立的节点(可以查看Graph.Read_LGL
)。这个格式大致是这样的:
# nodeID
nodeID2
nodeID3
# nodeID2
nodeID4
nodeID5
nodeID
# isolatedNode
# nodeID5
你大概明白了吧;以井号(#)开头的行表示正在定义一个新节点。接下来,这些行会列出刚定义的节点的邻居。如果你需要一个孤立的节点,只需在这一行中用井号加上节点ID,然后继续定义下一个节点。
关于LGL格式的更多信息可以在这里找到。
还有一种比较容易理解的格式,你可能也想看看,那就是GML格式,igraph也支持这种格式。