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

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 ndarray 相互转换#

  • 要将 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])

创建主对角线为一的稀疏矩阵。

identity(n[, dtype, format])

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

kron(A, B[, format])

稀疏矩阵 A 和 B 的 Kronecker 积。

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)

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

Identifying sparse matrices

issparse(x)

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

isspmatrix(x)

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

isspmatrix_csc(x)

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

isspmatrix_csr(x)

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

isspmatrix_coo(x)

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

isspmatrix_dia(x)

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

子模块#

csgraph

linalg

异常#