Networkx:将MultiDiGraph转换为DiGraph

3
有没有快速的方法将networkx MultiDiGraph对象转换为DiGraph?我正在使用以下代码创建一个scale_free_graph:
import networkx as nx
G = nx.scale_free_graph(100)

但我想从我的图中删除所有自环和平行边。
1个回答

2
您可以使用nx.MultiDiGraph创建新的nx.DiGraph将其作为输入图形

incoming_graph_data(输入图形(可选,默认值:None)) - 用于初始化图形的数据。如果为None(默认),则创建一个空图形。数据可以是边缘列表或任何NetworkX图形对象。如果安装了相应的可选Python包,则数据还可以是NumPy矩阵或2d ndarray、SciPy稀疏矩阵或PyGraphviz图形。

import networkx as nx

G = nx.MultiDiGraph()
G.add_edges_from([
    (1, 2),
    (1, 2),
    (1, 2)
])
print('G edges:', G.edges)
H = nx.DiGraph(G)
print('H edges:', H.edges)

将打印:
G edges: [(1, 2, 0), (1, 2, 1), (1, 2, 2)]
H edges: [(1, 2)]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接