to_scipy_sparse_matrix#

to_scipy_sparse_matrix(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_matrix(G)
>>> print(A.todense())
[[1]]
>>> A.setdiag(A.diagonal() * 2)
>>> print(A.todense())
[[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_matrix(G, nodelist=[0, 1, 2])
>>> print(S.todense())
[[0 2 0]
 [1 0 0]
 [0 0 4]]