当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX from_scipy_sparse_array用法及代码示例


本文简要介绍 networkx.convert_matrix.from_scipy_sparse_array 的用法。

用法:

from_scipy_sparse_array(A, parallel_edges=False, create_using=None, edge_attribute='weight')

从作为SciPy 稀疏数组给出的邻接矩阵创建一个新图。

参数

A: scipy.sparse array

图的邻接矩阵表示

parallel_edges布尔值

如果为真,create_using 是多重图,A 是整数矩阵,则矩阵中的条目 (i, j) 被解释为连接图中顶点 ij 的平行边的数量。如果为 False,则矩阵中的条目被解释为连接顶点的单条边的权重。

create_usingNetworkX 图形构造函数,可选(默认=nx.Graph)

要创建的图表类型。如果是图形实例,则在填充之前清除。

edge_attribute: string

存储矩阵数值的边属性名称。数据将具有与矩阵条目相同的类型(int、float、(real、imag))。

注意

对于有向图,明确提及create_using=nx.DiGraph,A 的条目 i,j 对应于从 i 到 j 的边。

如果 create_using networkx.MultiGraph networkx.MultiDiGraph parallel_edges 是 True ,并且 A 的条目是 int 类型,则此函数返回具有平行边的多重图(由 create_using 构造)。在这种情况下,edge_attribute 将被忽略。

如果create_using 表示无向多重图,则仅将矩阵A 的上三角形指示的边添加到图中。

例子

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

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

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

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

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

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.convert_matrix.from_scipy_sparse_array。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。