full_join#

full_join(G, H, rename=(None, None))[source]#

返回图 G 和 H 的全并。

全并是 G 和 H 的并集,其中添加了 G 和 H 之间的所有边。G 和 H 的节点集必须互不相交,否则会引发异常。

参数:
G, H

一个 NetworkX 图

rename元组 , 默认值=(None, None)

可以通过指定元组 rename=('G-', 'H-') 来更改 G 和 H 的节点名称(例如)。G 中的节点“u”将被重命名为“G-u”,H 中的节点“v”将被重命名为“H-v”。

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

另请参阅

union
disjoint_union

注意

建议 G 和 H 要么都是有向图,要么都是无向图。

如果 G 是有向图,则会添加从 G 到 H 的边以及从 H 到 G 的边。

请注意 full_join() 不会为 MultiGraph 产生并行边。

图 G 和 H 的全并操作等同于获取它们的补图,执行不相交并集,最后获取结果图的补图。

图、边和节点属性会从 G 和 H 传播到合并图。如果图属性在 G 和 H 中都存在,则使用来自 H 的值。

示例

>>> G = nx.Graph([(0, 1), (0, 2)])
>>> H = nx.Graph([(3, 4)])
>>> R = nx.full_join(G, H, rename=("G", "H"))
>>> R.nodes
NodeView(('G0', 'G1', 'G2', 'H3', 'H4'))
>>> R.edges
EdgeView([('G0', 'G1'), ('G0', 'G2'), ('G0', 'H3'), ('G0', 'H4'), ('G1', 'H3'), ('G1', 'H4'), ('G2', 'H3'), ('G2', 'H4'), ('H3', 'H4')])
----

其他后端实现了此函数

graphblas : 启用 OpenMP 的稀疏线性代数后端。