adjacency_matrix(G, nodelist=None, weight='weight')[source]

Returns adjacency matrix of G.

  • G (graph) – A NetworkX graph

  • nodelist (list, optional) – The rows and columns are ordered according to the nodes in nodelist. If nodelist is None, then the ordering is produced by G.nodes().

  • weight (string or None, optional (default=’weight’)) – The edge data key used to provide each value in the matrix. If None, then each edge has weight 1.


A – Adjacency matrix representation of G.

Return type

SciPy sparse matrix


For directed graphs, entry i,j corresponds to an edge from i to j.

If you want a pure Python adjacency matrix representation try networkx.convert.to_dict_of_dicts which will return a dictionary-of-dictionaries format that can be addressed as a sparse matrix.

For MultiGraph/MultiDiGraph with parallel edges the weights are summed. See to_numpy_array for other options.

The convention used for self-loop edges in graphs is to assign the diagonal matrix entry value to the edge weight attribute (or the number 1 if the edge has no weight attribute). If the alternate convention of doubling the edge weight is desired the resulting Scipy sparse matrix can be modified as follows:

>>> import scipy as sp
>>> G = nx.Graph([(1, 1)])
>>> A = nx.adjacency_matrix(G)
>>> print(A.todense())
>>> A.setdiag(A.diagonal() * 2)
>>> print(A.todense())

See also

to_numpy_array(), to_scipy_sparse_matrix(), to_dict_of_dicts(), adjacency_spectrum()