cupyx.scipy.sparse.coo_matrix#

class cupyx.scipy.sparse.coo_matrix(arg1, shape=None, dtype=None, copy=False)[source]#

COO 格式稀疏矩阵。

这可以通过几种方式实例化。

coo_matrix(D)

D 是一个 rank-2 的 cupy.ndarray

coo_matrix(S)

S 是另一个稀疏矩阵。它等同于 S.tocoo()

coo_matrix((M, N), [dtype])

它构造一个形状为 (M, N) 的空矩阵。默认 dtype 为 float64。

coo_matrix((data, (row, col)))

所有 datarowcol 都是一维的 cupy.ndarray

参数:
  • arg1 – 初始化的参数。

  • shape (tuple) – 矩阵的形状。其长度必须为 2。

  • dtype – 数据类型。它必须是 numpy.dtype 的参数。

  • copy (bool) – 如果为 True,则始终使用给定数据的副本。

方法

__len__()[source]#
__iter__()[source]#
arcsin()[source]#

逐元素反正弦。

arcsinh()[source]#

逐元素反双曲正弦。

arctan()[source]#

逐元素反正切。

arctanh()[source]#

逐元素反双曲正切。

asformat(format)[source]#

以给定的稀疏格式返回此矩阵。

参数:

format (str or None) – 您需要的格式。

asfptype()[source]#

将矩阵向上转换为浮点格式。

当矩阵是浮点类型时,该方法返回自身。否则,它会创建一个具有相同格式的浮点类型副本。

返回:

浮点类型的矩阵。

返回类型:

cupyx.scipy.sparse.spmatrix

astype(t)[source]#

将数组转换为给定的数据类型。

参数:

dtype – 类型说明符。

返回:

具有给定类型的新数组副本。

ceil()[source]#

逐元素向上取整。

conj(copy=True)[source]#

逐元素复共轭。

如果矩阵是非复数数据类型且 copy 为 False,则此方法不执行任何操作,并且不会复制数据。

参数:

copy (bool) – 如果为 True,则保证结果不与 self 共享数据。

返回:

逐元素复共轭。

返回类型:

cupyx.scipy.sparse.spmatrix

conjugate(copy=True)[source]#

逐元素复共轭。

如果矩阵是非复数数据类型且 copy 为 False,则此方法不执行任何操作,并且不会复制数据。

参数:

copy (bool) – 如果为 True,则保证结果不与 self 共享数据。

返回:

逐元素复共轭。

返回类型:

cupyx.scipy.sparse.spmatrix

copy()[source]#

返回此矩阵的副本。

返回值与当前矩阵之间不共享数据/索引。

count_nonzero()[source]#

返回非零元素的数量。

注意

此方法计算实际的非零元素数量,不包括显式零元素。而 nnz 返回包括显式零在内的元素数量。

返回:

非零元素的数量。

deg2rad()[source]#

逐元素度转弧度。

diagonal(k=0)[source]#

返回矩阵的第 k 条对角线。

参数:
  • k (int, optional) – 获取哪条对角线,对应于元素

  • a[i – 0(主对角线)。

  • Default (i+k].) – 0(主对角线)。

返回:

第 k 条对角线。

返回类型:

cupy.ndarray

dot(other)[source]#

普通点积

eliminate_zeros()[source]#

就地删除零元素。

expm1()[source]#

逐元素 expm1。

floor()[source]#

逐元素向下取整。

get(stream=None)[source]#

在主机内存上返回数组的副本。

参数:

stream (cupy.cuda.Stream) – CUDA 流对象。如果指定,复制操作将异步运行。否则,复制是同步的。

返回:

主机内存上的数组副本。

返回类型:

scipy.sparse.coo_matrix

getH()[source]#
get_shape()[source]#

返回矩阵的形状。

返回:

矩阵的形状。

返回类型:

tuple

getformat()[source]#
getmaxprint()[source]#
getnnz(axis=None)[source]#

返回存储值的数量,包括显式零。

log1p()[source]#

逐元素 log1p。

maximum(other)[source]#
mean(axis=None, dtype=None, out=None)[source]#

沿指定轴计算算术平均值。

参数:

axis (int or None) – 计算总和的轴。如果为 None,则计算所有元素的平均值。从 {None, 0, 1, -2, -1} 中选择。

返回:

平均值(或数组)。

返回类型:

cupy.ndarray

另请参阅

scipy.sparse.spmatrix.mean()

minimum(other)[source]#
multiply(other)[source]#

与另一个矩阵的逐点乘法

power(n, dtype=None)[source]#

逐元素幂函数。

参数:
  • n – 指数。

  • dtype – 类型说明符。

rad2deg()[source]#

逐元素弧度转度。

reshape(*shape, order='C')[source]#

在不改变数据的情况下为稀疏矩阵赋予新形状。

参数:
  • shape (tuple) – 新形状应与原始形状兼容。

  • order – {‘C’, ‘F’} (可选) 使用此索引顺序读取元素。‘C’ 表示使用类似 C 语言的索引顺序读写元素。‘F’ 表示使用类似 Fortran 语言的索引顺序读写元素。默认值:C。

返回:

稀疏矩阵

返回类型:

cupyx.scipy.sparse.coo_matrix

rint()[source]#

逐元素取最近整数。

set_shape(shape)[source]#
setdiag(values, k=0)[source]#

设置数组的对角线或非对角线元素。

参数:
  • values (ndarray) – 对角线元素的新值。values 可以是任何长度。如果对角线比 values 长,则不会设置剩余的对角线元素。如果 values 比对角线长,则忽略剩余的值。如果给定一个标量值,则所有对角线都设置为该值。

  • k (int, optional) – 要设置的非对角线,对应于元素 a[i,i+k]。默认值:0(主对角线)。

sign()[source]#

逐元素求符号。

sin()[source]#

逐元素求正弦。

sinh()[source]#

逐元素求双曲正弦。

sqrt()[source]#

逐元素求平方根。

sum(axis=None, dtype=None, out=None)[source]#

沿给定轴对矩阵元素求和。

参数:
  • axis (int or None) – 计算总和的轴。如果为 None,则计算所有元素的总和。从 {None, 0, 1, -2, -1} 中选择。

  • dtype – 返回矩阵的类型。如果未指定,则使用数组的类型。

  • out (cupy.ndarray) – 输出矩阵。

返回:

平均值(或数组)。

返回类型:

cupy.ndarray

另请参阅

scipy.sparse.spmatrix.sum()

sum_duplicates()[source]#

通过将重复的矩阵条目相加来消除它们。

警告

对索引进行排序时,CuPy 遵循 cuSPARSE 的约定,这与 SciPy 不同。因此,输出索引的顺序可能不同。

>>> #     1 0 0
>>> # A = 1 1 0
>>> #     1 1 1
>>> data = cupy.array([1, 1, 1, 1, 1, 1], 'f')
>>> row = cupy.array([0, 1, 1, 2, 2, 2], 'i')
>>> col = cupy.array([0, 0, 1, 0, 1, 2], 'i')
>>> A = cupyx.scipy.sparse.coo_matrix((data, (row, col)),
...                                   shape=(3, 3))
>>> a = A.get()
>>> A.sum_duplicates()
>>> a.sum_duplicates()  # a is scipy.sparse.coo_matrix
>>> A.row
array([0, 1, 1, 2, 2, 2], dtype=int32)
>>> a.row
array([0, 1, 2, 1, 2, 2], dtype=int32)
>>> A.col
array([0, 0, 1, 0, 1, 2], dtype=int32)
>>> a.col
array([0, 0, 0, 1, 1, 2], dtype=int32)

警告

调用此函数可能会同步设备。

tan()[source]#

逐元素求正切。

tanh()[source]#

逐元素求双曲正切。

toarray(order=None, out=None)[source]#

返回表示相同值的密集矩阵。

参数:
  • order (str) – 不支持。

  • out – 不支持。

返回:

表示相同值的密集数组。

返回类型:

cupy.ndarray

tobsr(blocksize=None, copy=False)[source]#

将此矩阵转换为块稀疏行格式。

tocoo(copy=False)[source]#

将矩阵转换为 COO 格式。

参数:

copy (bool) – 如果为 False,则尽可能共享数据数组。

返回:

转换后的矩阵。

返回类型:

cupyx.scipy.sparse.coo_matrix

tocsc(copy=False)[source]#

将矩阵转换为压缩稀疏列格式。

参数:

copy (bool) – 如果为 False,则尽可能共享数据数组。实际上,此选项会被忽略,因为在 coo 到 csc 转换中,矩阵中的所有数组都无法共享。

返回:

转换后的矩阵。

返回类型:

cupyx.scipy.sparse.csc_matrix

tocsr(copy=False)[source]#

将矩阵转换为压缩稀疏行格式。

参数:

copy (bool) – 如果为 False,则尽可能共享数据数组。实际上,此选项会被忽略,因为在 coo 到 csr 转换中,矩阵中的所有数组都无法共享。

返回:

转换后的矩阵。

返回类型:

cupyx.scipy.sparse.csr_matrix

todense(order=None, out=None)[source]#

返回此矩阵的密集表示形式。

todia(copy=False)[source]#

将此矩阵转换为稀疏对角线格式。

todok(copy=False)[source]#

将此矩阵转换为键值字典格式。

tolil(copy=False)[source]#

将此矩阵转换为链表格式。

transpose(axes=None, copy=False)[source]#

返回转置矩阵。

参数:
  • axes – 不支持此选项。

  • copy (bool) – 如果为 True,返回的矩阵不共享数据。否则,它尽可能共享数据数组。

返回:

转置矩阵。

返回类型:

cupyx.scipy.sparse.spmatrix

trunc()[source]#

逐元素截断。

__eq__(other)[source]#

返回 self==value。

__ne__(other)[source]#

返回 self!=value。

__lt__(other)[source]#

返回 self<value。

__le__(other)[source]#

返回 self<=value。

__gt__(other)[source]#

返回 self>value。

__ge__(other)[source]#

返回 self>=value。

__nonzero__()[source]#
__bool__()[source]#

属性

A#

此矩阵的密集 ndarray 表示。

此属性等同于 toarray() 方法。

H#
T#
device#

此数组所在的 CUDA 设备。

dtype#

矩阵的数据类型。

format = 'coo'#
ndim#
nnz#
shape#
size#