from_scipy_sparse_matrix¶
-
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 isFalse
, 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.MultiGraph
ornetworkx.MultiDiGraph
, \(parallel_edges\) isTrue
, 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}}