identified_nodes#
- identified_nodes(G, u, v, self_loops=True, copy=True)#
返回收缩结果的图表
u
和v
.节点收缩将两个节点标识为单个节点,该节点与原始两个节点上的任何边缘相关联。
- 参数
- G网络X图表
其节点将被收缩的图。
- u, v节点
必须是中的节点
G
。- self_loops布尔值
如果为True,则连接的任何边
u
和v
在……里面G
在返回的图中的新节点上成为自循环。- copy布尔值
如果这为True(默认为True),则复制
G
并返回它,而不是直接更改G
。
- 返回
- 网络图
如果Copy为True,则为类型相同的新图形对象
G
(离开G
未修改)具有u
和v
在单个节点中标识。右侧节点v
将合并到节点中u
,仅限如此u
将出现在返回的图形中。如果复制为FALSE,则修改G
使用u
和v
在单个节点中标识。右侧节点v
将合并到节点中u
,仅限如此u
将出现在返回的图形中。
笔记
对于多图表,重新对齐边的边键可能与旧边的边键不同。这是自然的,因为边缘键仅在每对节点内是唯一的。
对于非多重图,其中
u
和v
与第三个节点相邻w
,边缘 (v
,w
)将收缩到边缘 (u
,w
),并将其属性存储到“收缩”属性中。此功能也可用作
identified_nodes
.实例
在四个结点上收缩圈图的两个不相邻结点
C_4
生成路径图(忽略平行边):>>> G = nx.cycle_graph(4) >>> M = nx.contracted_nodes(G, 1, 3) >>> P3 = nx.path_graph(3) >>> nx.is_isomorphic(M, P3) True
>>> G = nx.MultiGraph(P3) >>> M = nx.contracted_nodes(G, 0, 2) >>> M.edges MultiEdgeView([(0, 1, 0), (0, 1, 1)])
>>> G = nx.Graph([(1, 2), (2, 2)]) >>> H = nx.contracted_nodes(G, 1, 2, self_loops=False) >>> list(H.nodes()) [1] >>> list(H.edges()) [(1, 1)]