NetworkX

Previous topic

convert_node_labels_to_integers

Next topic

Reading and writing graphs

relabel_nodes

relabel_nodes(G, mapping, copy=True)[source]

Relabel the nodes of the graph G.

Parameters :

G : graph

A NetworkX graph

mapping : dictionary

A dictionary with the old labels as keys and new labels as values. A partial mapping is allowed.

copy : bool (optional, default=True)

If True return a copy or if False relabel the nodes in place.

Notes

Only the nodes specified in the mapping will be relabeled.

The keyword setting copy=False modifies the graph in place. This is not always possible if the mapping is circular. In that case use copy=True.

Examples

>>> G=nx.path_graph(3)  # nodes 0-1-2
>>> mapping={0:'a',1:'b',2:'c'}
>>> H=nx.relabel_nodes(G,mapping)
>>> print(H.nodes())
['a', 'c', 'b']
>>> G=nx.path_graph(26) # nodes 0..25
>>> mapping=dict(zip(G.nodes(),"abcdefghijklmnopqrstuvwxyz"))
>>> H=nx.relabel_nodes(G,mapping) # nodes a..z
>>> mapping=dict(zip(G.nodes(),range(1,27)))
>>> G1=nx.relabel_nodes(G,mapping) # nodes 1..26

Partial in-place mapping:

>>> G=nx.path_graph(3)  # nodes 0-1-2
>>> mapping={0:'a',1:'b'} # 0->'a' and 1->'b'
>>> G=nx.relabel_nodes(G,mapping, copy=False)
>>> print(G.nodes())
[2, 'b', 'a']

Mapping as function:

>>> G=nx.path_graph(3)
>>> def mapping(x):
...    return x**2
>>> H=nx.relabel_nodes(G,mapping)
>>> print(H.nodes())
[0, 1, 4]