to_scipy_sparse_array#
- to_scipy_sparse_array(G, nodelist=None, dtype=None, weight='weight', format='csr')[源代码]#
以SciPy稀疏数组的形式返回图形邻接矩阵。
- 参数
- G图表
用于构建稀疏矩阵的网络X图。
- nodelist列表,可选
行和列根据中的节点进行排序
nodelist
。如果nodelist
为NONE,则排序由G.Nodes()生成。- dtypeNumPy数据类型,可选
用于初始化数组的有效NumPy数据类型。如果为None,则使用NumPy默认值。
- weight字符串或无可选(默认值=‘Weight’)
保存用于边权重的数值的边属性。如果没有,则所有边权重为1。
- format字符串{‘bsr’,‘csr’,‘csc’,‘coo’,‘lil’,‘dia’,‘dok’}
要返回的矩阵的类型(默认为‘CSR’)。对于某些算法,稀疏矩阵的不同实现可以执行得更好。看见 [1] 有关详细信息,请参阅。
- 返回
- ASciPy稀疏数组
图邻接矩阵。
笔记
对于有向图,矩阵项i,j对应于i到j的边。
使用参数权重中的边属性填充矩阵条目。当边缘没有该属性时,条目的值为1。
对于多条边,矩阵值是边权重的总和。
什么时候?
nodelist
不包含中的每个节点G
,邻接矩阵是从G
这是由中的节点引起的nodelist
.图中自循环边的惯例是将对角矩阵入口值赋给边的权重属性(如果边没有权重属性,则赋给数字1)。如果需要将边缘权重加倍的备用约定,则可以如下修改生成的scipy稀疏矩阵:
>>> G = nx.Graph([(1, 1)]) >>> A = nx.to_scipy_sparse_array(G) >>> print(A.todense()) [[1]] >>> A.setdiag(A.diagonal() * 2) >>> print(A.toarray()) [[2]]
工具书类
- 1
scipy dev.references,“稀疏矩阵”,https://docs.scipy.org/doc/scipy/reference/sparse.html
实例
>>> G = nx.MultiDiGraph() >>> G.add_edge(0, 1, weight=2) 0 >>> G.add_edge(1, 0) 0 >>> G.add_edge(2, 2, weight=3) 0 >>> G.add_edge(2, 2) 1 >>> S = nx.to_scipy_sparse_array(G, nodelist=[0, 1, 2]) >>> print(S.toarray()) [[0 2 0] [1 0 0] [0 0 4]]