disjoint_union#

disjoint_union(G, H)[source]#

合并图 G 和 H。假设节点是唯一的(不相交的)。

该算法会自动重新标记节点以避免名称冲突。

Parameters:
G,H

一个 NetworkX 图

Returns:
U一个与 G 类型相同的联合图。

Notes

创建一个与 G 相同类别的新图。建议 G 和 H 要么都是有向的,要么都是无向的。

G 的节点被重新标记为 0 到 len(G)-1,H 的节点被重新标记为 len(G) 到 len(G)+len(H)-1。

重新编号强制 G 和 H 不相交,因此不会因名称冲突而引发异常。要保留对公共节点的检查,请使用 union()。

边和节点属性从 G 和 H 传播到联合图。图属性也会传播,但如果它们同时存在于 G 和 H 中,则使用 H 的值。

要合并具有公共节点的图,请考虑使用 compose(G, H) 或方法 Graph.update()。

Examples

>>> G = nx.Graph([(0, 1), (0, 2), (1, 2)])
>>> H = nx.Graph([(0, 3), (1, 2), (2, 3)])
>>> G.nodes[0]["key1"] = 5
>>> H.nodes[0]["key2"] = 10
>>> U = nx.disjoint_union(G, H)
>>> U.nodes(data=True)
NodeDataView({0: {'key1': 5}, 1: {}, 2: {}, 3: {'key2': 10}, 4: {}, 5: {}, 6: {}})
>>> U.edges
EdgeView([(0, 1), (0, 2), (1, 2), (3, 4), (4, 6), (5, 6)])

Additional backends implement this function

graphblas : OpenMP-enabled sparse linear algebra backend.