networkx.convert_matrix.from_scipy_sparse_matrix

from_scipy_sparse_matrix(A, parallel_edges=False, create_using=None, edge_attribute='weight')[源代码]

从给定为scipy稀疏矩阵的邻接矩阵创建新图形。

参数
  • A弯腰稀疏矩阵 )--图的邻接矩阵表示

  • parallel_edges布尔 )--如果这是真的, create_using 是多图表,并且 A 是一个整数矩阵,然后输入 (i,j) 在矩阵中,被解释为连接顶点的平行边数。 ij 在图表中。如果为假,则矩阵中的条目将被解释为连接顶点的单个边的权重。

  • create_usingNetworkX graph constructor, optional (default=nx.Graph) )--要创建的图表类型。如果图形实例,则在填充之前清除。

  • edge_attribute一串 )--用于存储矩阵数值的边缘属性的名称。数据将与矩阵项(int,float,(real,imag))具有相同的类型。

提示

对于有向图,显式地提到create_using=nx.digraph,并且a的条目i,j对应于从i到j的边。

如果 create_usingnetworkx.MultiGraphnetworkx.MultiDiGraphparallel_edges 是真的,并且 A 属于类型 int ,则此函数返回一个多图表(由 create_using )有平行边缘。在这种情况下, edge_attribute 将被忽略。

如果 create_using 表示一个无向多重图,然后仅表示矩阵上三角所指示的边 A 将添加到图表中。

实际案例

>>> import scipy as sp
>>> A = sp.sparse.eye(2, 2, 1)
>>> G = nx.from_scipy_sparse_matrix(A)

如果 create_using 指示多图表,并且矩阵只有整数项,并且 parallel_edges 如果为false,则条目将被视为连接节点的边的权重(不创建平行边):

>>> A = sp.sparse.csr_matrix([[1, 1], [1, 2]])
>>> G = nx.from_scipy_sparse_matrix(A, create_using=nx.MultiGraph)
>>> G[1][1]
AtlasView({0: {'weight': 2}})

如果 create_using 指示多图表,并且矩阵只有整数项,并且 parallel_edges 如果为真,则条目将被视为连接这两个顶点的平行边数:

>>> A = sp.sparse.csr_matrix([[1, 1], [1, 2]])
>>> G = nx.from_scipy_sparse_matrix(A, parallel_edges=True,
...                                 create_using=nx.MultiGraph)
>>> G[1][1]
AtlasView({0: {'weight': 1}, 1: {'weight': 1}})