from_scipy_sparse_array#

from_scipy_sparse_array(A, parallel_edges=False, create_using=None, edge_attribute='weight')[source]#

从SciPy稀疏数组表示的邻接矩阵创建新图。

参数:
A: scipy.sparse 数组

图的邻接矩阵表示

parallel_edges布尔型

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

create_usingNetworkX 图构造器,可选 (默认值=nx.Graph)

要创建的图类型。如果是图实例,则在填充前会清空。

edge_attribute: 字符串

用于存储矩阵数值的边属性名称。数据类型与矩阵条目类型相同 (int, float, (real,imag))。

注意

对于有向图,请明确指定 create_using=nx.DiGraph,并且 A 的条目 i,j 对应于从 i 到 j 的边。

如果 create_usingnetworkx.MultiGraphnetworkx.MultiDiGraphparallel_edges 为 True,并且 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_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}})
----

其他后端实现了此函数

cugraph : GPU加速后端。