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) 被解释为连接图中顶点 i 和 j 的并行边的数量。如果为 False,则矩阵中的条目被解释为连接这些顶点的单条边的权重。- create_usingNetworkX 图构造器,可选 (默认值=nx.Graph)
要创建的图类型。如果是图实例,则在填充前会清空。
- edge_attribute: 字符串
用于存储矩阵数值的边属性名称。数据类型与矩阵条目类型相同 (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 >>> 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加速后端。