稀疏矩阵 (cupyx.scipy.sparse)#

提示

SciPy API 参考:稀疏矩阵 (scipy.sparse) <https://docs.scipy.org/doc/scipy/reference/sparse.html>`_

CuPy 支持使用 cuSPARSE 的稀疏矩阵。这些矩阵具有与 SciPy 的稀疏矩阵 相同的接口。

转换为/从 SciPy 稀疏矩阵#

cupyx.scipy.sparse.*_matrixscipy.sparse.*_matrix 不能互相隐式转换。这意味着,SciPy 函数不能接受 cupyx.scipy.sparse.*_matrix 对象作为输入,反之亦然。

  • 要将 SciPy 稀疏矩阵转换为 CuPy,请将其传递给每个 CuPy 稀疏矩阵类的构造函数。

  • 要将 CuPy 稀疏矩阵转换为 SciPy,请使用每个 CuPy 稀疏矩阵类的 get 方法。

请注意,在 CuPy 和 SciPy 之间转换会导致数据在主机(CPU)设备和 GPU 设备之间传输,这在性能方面是昂贵的。

转换为/自 CuPy ndarrays#

  • 要将 CuPy ndarray 转换为 CuPy 稀疏矩阵,请将其传递给每个 CuPy 稀疏矩阵类的构造函数。

  • 要将 CuPy 稀疏矩阵转换为 CuPy ndarray,请使用每个 CuPy 稀疏矩阵实例的 toarray 方法(例如,cupyx.scipy.sparse.csr_matrix.toarray())。

在 CuPy ndarray 和 CuPy 稀疏矩阵之间转换不会导致数据传输;它是在 GPU 设备内部复制的。

内容#

稀疏矩阵类#

coo_matrix(arg1[, shape, dtype, copy])

COOrdinate 格式稀疏矩阵。

csc_matrix(arg1[, shape, dtype, copy])

压缩稀疏列矩阵。

csr_matrix(arg1[, shape, dtype, copy])

压缩稀疏行矩阵。

dia_matrix(arg1[, shape, dtype, copy])

带有对角存储的稀疏矩阵。

spmatrix([maxprint])

所有稀疏矩阵的基类。

函数#

构建稀疏矩阵:

eye(m[, n, k, dtype, format])

创建一个对角线上为1的稀疏矩阵。

identity(n[, dtype, format])

创建一个稀疏格式的单位矩阵。

kron(A, B[, format])

稀疏矩阵 A 和 B 的克罗内克积。

kronsum(A, B[, format])

稀疏矩阵 A 和 B 的 Kronecker 和。

diags(diagonals[, offsets, shape, format, dtype])

从对角线构造一个稀疏矩阵。

spdiags(data, diags, m, n[, format])

从对角线创建一个稀疏矩阵。

tril(A[, k, format])

以稀疏格式返回矩阵的下三角部分

triu(A[, k, format])

以稀疏格式返回矩阵的上三角部分

bmat(blocks[, format, dtype])

从稀疏子块构建稀疏矩阵

hstack(blocks[, format, dtype])

水平堆叠稀疏矩阵(按列)

vstack(blocks[, format, dtype])

垂直堆叠稀疏矩阵(按行)

rand(m, n[, density, format, dtype, ...])

生成一个随机的稀疏矩阵。

random(m, n[, density, format, dtype, ...])

生成一个随机的稀疏矩阵。

稀疏矩阵工具:

find(A)

返回矩阵中非零元素的索引和值

识别稀疏矩阵:

issparse(x)

检查给定的矩阵是否为稀疏矩阵。

isspmatrix(x)

检查给定的矩阵是否为稀疏矩阵。

isspmatrix_csc(x)

检查给定的矩阵是否为CSC格式。

isspmatrix_csr(x)

检查给定的矩阵是否为CSR格式。

isspmatrix_coo(x)

检查给定矩阵是否为COO格式。

isspmatrix_dia(x)

检查给定矩阵是否为DIA格式。

子模块#

csgraph

linalg

异常#