scipy.sparse.csgraph.

reverse_cuthill_mckee#

scipy.sparse.csgraph.reverse_cuthill_mckee(graph, symmetric_mode=False)#

返回一个置换数组,该数组按反向 Cuthill-McKee 顺序排列稀疏 CSR 或 CSC 矩阵。

默认情况下,假设 symmetric_mode=False,输入矩阵不是对称的,并且对矩阵 A+A.T 进行操作。如果您保证矩阵在结构上是对称的(矩阵元素的值无关紧要),则设置 symmetric_mode=True

参数:
graph稀疏数组或矩阵

以 CSC 或 CSR 稀疏数组或矩阵格式输入的稀疏矩阵。

symmetric_modebool, 可选

是否保证输入矩阵是对称的。

返回:
permndarray

置换的行和列索引的数组。

注释

在 0.15.0 版本中添加。

参考文献

E. Cuthill 和 J. McKee,“减少稀疏对称矩阵的带宽”,ACM ‘69 Proceedings of the 1969 24th national conference, (1969)。

示例

>>> from scipy.sparse import csr_array
>>> from scipy.sparse.csgraph import reverse_cuthill_mckee
>>> graph = [
... [0, 1, 2, 0],
... [0, 0, 0, 1],
... [2, 0, 0, 3],
... [0, 0, 0, 0]
... ]
>>> graph = csr_array(graph)
>>> print(graph)
<Compressed Sparse Row sparse array of dtype 'int64'
    with 5 stored elements and shape (4, 4)>
    Coords  Values
    (0, 1)  1
    (0, 2)  2
    (1, 3)  1
    (2, 0)  2
    (2, 3)  3
>>> reverse_cuthill_mckee(graph)
array([3, 2, 1, 0], dtype=int32)