cartesian_product#
- cartesian_product(G, H)[source]#
返回图 G 和 H 的笛卡尔积。
图 \(G\) 和 \(H\) 的笛卡尔积 \(P\) 的节点集是节点集的笛卡尔积,即 \(V(P)=V(G) \times V(H)\)。\(P\) 有一条边 \(((u,v),(x,y))\) 当且仅当 \(u\) 等于 \(x\) 且 \(v\) 和 \(y\) 在 \(H\) 中相邻,或者 \(v\) 等于 \(y\) 且 \(u\) 和 \(x\) 在 \(G\) 中相邻。
- 参数:
- G, H: 图
Networkx 图。
- 返回:
- P: NetworkX 图
图 G 和 H 的笛卡尔积。如果 G 或 H 是多重图,则 P 将是多重图。如果 G 和 H 是有向图,则 P 是有向图;如果 G 和 H 是无向图,则 P 是无向图。
- 抛出:
- NetworkXError
如果 G 和 H 不同时为有向图或无向图。
说明
P 中的节点属性是 G 和 H 节点属性的二元组。缺失的属性将被赋予 None。
示例
>>> G = nx.Graph() >>> H = nx.Graph() >>> G.add_node(0, a1=True) >>> H.add_node("a", a2="Spam") >>> P = nx.cartesian_product(G, H) >>> list(P) [(0, 'a')]
边属性和边键(对于多重图)也会被复制到新的积图中