Return the tensor product of G and H.
The tensor product P of the graphs G and H has a node set that is the Cartesian product of the node sets, \(V(P)=V(G) \times V(H)\). P has an edge ((u,v),(x,y)) if and only if (u,x) is an edge in G and (v,y) is an edge in H.
Tensor product is sometimes also referred to as the categorical product, direct product, cardinal product or conjunction.
Parameters: H (G,) – Networkx graphs. Returns: P – The tensor product of G and H. P will be a multi-graph if either G or H is a multi-graph, will be a directed if G and H are directed, and undirected if G and H are undirected. Return type: NetworkX graph Raises:
NetworkXError– If G and H are not both directed or both undirected.
Node attributes in P are two-tuple of the G and H node attributes. Missing attributes are assigned None.
>>> G = nx.Graph() >>> H = nx.Graph() >>> G.add_node(0,a1=True) >>> H.add_node('a',a2='Spam') >>> P = nx.tensor_product(G,H) >>> P.nodes() [(0, 'a')]
Edge attributes and edge keys (for multigraphs) are also copied to the new product graph