0

在 igraph 中,我发现了两种将图转换为无向图的不同方法:
第一种是to_undirected简单地“将有向图转换为无向图”。第二个是在副本上as_undirected调用。to_undirected

在 NetworkX 中,我发现只有一种方法to_undirected可以简单地创建图的无向深层副本。问题是我真的找不到类似于 igraph 中第一个的方法。是否有任何解决方案可以在不使用 NetworkX 创建副本的情况下转换图形?

4

1 回答 1

2

正如您所说,networkx.to_undirected创建图形的深层副本。这意味着它会复制边、节点和图形属性字典。要创建 digraph 的无向浅表副本g,可以编写:

g = networkx.Graph(g)

这仍然是一个副本,但是一个浅的副本,其中属性字典没有被深度复制。

似乎不存在将 a 转换为DiGraph就地Graph 方法。做同样多的事情意味着改变对象的类型——简单地做一个浅拷贝可能更干净,而且成本也不高。

于 2015-06-28T17:20:58.827 回答