将 python-igraph 图转换为 networkx

aha*_*jib 7 python converter igraph networkx

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

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

TypeError: 'Graph' object is not iterable
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

Ell*_*ski 5

您可以使用边启动 networkx 图:

Graph([(1,2), (3,4)])
Run Code Online (Sandbox Code Playgroud)

请参阅文档

编辑:

这是如何使用它(感谢 nimafl 的代码):

graphigraph图,我们创建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
Run Code Online (Sandbox Code Playgroud)