disjoint_union#

disjoint_union(G, H)[源代码]#

合并图 G 和 H。节点被假定为唯一(不相交)。

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

参数:
G,H

一个 NetworkX 图

返回:
U与 G 类型相同的并集图。

另请参阅

union
compose
update()

注意

创建一个新的图,与 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() 方法。

示例

>>> 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)])
----

其他后端实现了此函数

graphblas : 支持 OpenMP 的稀疏线性代数后端。