networkx.from_scipy_sparse_matrix¶
-
networkx.from_scipy_sparse_matrix(A, parallel_edges=False, create_using=None, edge_attribute='weight')[source]¶ Creates a new graph from an adjacency matrix given as a SciPy sparse matrix.
Parameters: A: scipy sparse matrix
An adjacency matrix representation of a graph
parallel_edges : Boolean
If this is True, create_using is a multigraph, and A is an integer matrix, then entry (i, j) in the matrix is interpreted as the number of parallel edges joining vertices i and j in the graph. If it is False, then the entries in the adjacency matrix are interpreted as the weight of a single edge joining the vertices.
create_using: NetworkX graph
Use specified graph for result. The default is Graph()
edge_attribute: string
Name of edge attribute to store matrix numeric value. The data will have the same type as the matrix entry (int, float, (real,imag)).
Notes
If create_using is an instance of
networkx.MultiGraphornetworkx.MultiDiGraph, parallel_edges is True, and the entries of A are of typeint, then this function returns a multigraph (of the same type as create_using) with parallel edges. In this case, edge_attribute will be ignored.If create_using is an undirected multigraph, then only the edges indicated by the upper triangle of the matrix A will be added to the graph.
Examples
>>> import scipy.sparse >>> A = scipy.sparse.eye(2,2,1) >>> G = nx.from_scipy_sparse_matrix(A)
If create_using is a multigraph and the matrix has only integer entries, the entries will be interpreted as weighted edges joining the vertices (without creating parallel edges):
>>> import scipy >>> A = scipy.sparse.csr_matrix([[1, 1], [1, 2]]) >>> G = nx.from_scipy_sparse_matrix(A, create_using=nx.MultiGraph()) >>> G[1][1] {0: {'weight': 2}}
If create_using is a multigraph and the matrix has only integer entries but parallel_edges is True, then the entries will be interpreted as the number of parallel edges joining those two vertices:
>>> import scipy >>> A = scipy.sparse.csr_matrix([[1, 1], [1, 2]]) >>> G = nx.from_scipy_sparse_matrix(A, parallel_edges=True, ... create_using=nx.MultiGraph()) >>> G[1][1] {0: {'weight': 1}, 1: {'weight': 1}}