disjoint_union#
- disjoint_union(G, H)[源代码]#
合并图 G 和 H。节点被假定为唯一(不相交)。
此算法会自动重新标记节点以避免命名冲突。
- 参数:
- G,H图
一个 NetworkX 图
- 返回:
- U与 G 类型相同的并集图。
注意
创建一个新的图,与 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 的稀疏线性代数后端。