将python-igraph图转换为networkx

最近,我一直在使用python-igraph软件包,并且我所有的代码都基于我使用igraph创建的图形.现在,我需要为我的图计算一些度量,这些度量显然是在networkx中实现的,而不是在igraph中实现的,例如(katz_centrality_numpy,edge_betweenness_centrality,…).我想知道是否有一种方法可以在这两个程序包之间将一个图形转换为另一个图形,并避免再次读取文件,因为我的文件很大并且必须重复很多相同的过程.

顺便说一句,当我将igraph图传递给networkx函数时,收到以下错误:

TypeError: 'Graph' object is not iterable

谢谢 :)

解决方法:

您可以启动带有边的networkx图:

Graph([(1,2), (3,4)])

参见the documentation.

编辑:

这是使用方法(感谢nimafl的代码):

graph是igraph图,我们创建G是networkx图.

import networkx
A = graph.get_edgelist()
G = networkx.DiGraph(A) # In case your graph is directed
G = networkx.Graph(A) # In case you graph is undirected
上一篇:python-Igraph / networkx中的k最短路径实现(日元算法)


下一篇:将顶点属性添加到python中的加权igraph图