cupyx.scipy.sparse.coo_matrix#

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

COOrdinate 格式稀疏矩阵。

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

coo_matrix(D)

D 是一个秩为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) – 矩阵的形状。其长度必须为二。

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

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

方法

__len__()[源代码]#
__iter__()[源代码]#
arcsin()[源代码]#

逐元素反正弦。

arcsinh()[源代码]#

逐元素反正弦。

arctan()[源代码]#

逐元素反正切。

arctanh()[源代码]#

逐元素计算反双曲正切。

asformat(format)[源代码]#

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

参数:

format (str or None) – 你需要的形式。

asfptype()[源代码]#

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

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

返回:

一个浮点类型的矩阵。

返回类型:

cupyx.scipy.sparse.spmatrix

astype(t)[源代码]#

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

参数:

dtype – 类型说明符。

返回:

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

ceil()[源代码]#

逐元素向上取整。

conj(copy=True)[源代码]#

逐元素复共轭。

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

参数:

copy (bool) – 如果为真,结果保证不与自身共享数据。

返回:

逐元素的复共轭。

返回类型:

cupyx.scipy.sparse.spmatrix

conjugate(copy=True)[源代码]#

逐元素复共轭。

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

参数:

copy (bool) – 如果为真,结果保证不与自身共享数据。

返回:

逐元素的复共轭。

返回类型:

cupyx.scipy.sparse.spmatrix

copy()[源代码]#

返回此矩阵的副本。

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

count_nonzero()[源代码]#

返回非零条目的数量。

备注

此方法计算实际的非零条目数量,不包括显式的零条目。相反,nnz 返回包括显式零条目在内的条目数量。

返回:

非零条目的数量。

deg2rad()[源代码]#

逐元素的 deg2rad。

diagonal(k=0)[源代码][源代码]#

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

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

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

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

返回:

第 k 条对角线。

返回类型:

cupy.ndarray

dot(other)[源代码]#

普通点积

eliminate_zeros()[源代码][源代码]#

原地移除零条目。

expm1()[源代码]#

逐元素计算 expm1。

floor()[源代码]#

逐元素取底。

get(stream=None)[源代码][源代码]#

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

参数:

stream (cupy.cuda.Stream) – CUDA 流对象。如果提供了它,复制操作将异步进行。否则,复制操作是同步的。

返回:

主机内存中的数组副本。

返回类型:

scipy.sparse.coo_matrix

getH()[源代码]#
get_shape()[源代码][源代码]#

返回矩阵的形状。

返回:

矩阵的形状。

返回类型:

tuple

getformat()[源代码]#
getmaxprint()[源代码]#
getnnz(axis=None)[源代码][源代码]#

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

log1p()[源代码]#

逐元素计算 log1p。

maximum(other)[源代码]#
mean(axis=None, dtype=None, out=None)[源代码]#

计算指定轴上的算术平均值。

参数:

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

返回:

求和数组。

返回类型:

cupy.ndarray

参见

scipy.sparse.spmatrix.mean()

minimum(other)[源代码]#
multiply(other)[源代码]#

逐点乘以另一个矩阵

power(n, dtype=None)[源代码]#

逐元素幂函数。

参数:
  • n – 指数。

  • dtype – 类型说明符。

rad2deg()[源代码]#

逐元素的 rad2deg。

reshape(*shape, order='C')[源代码][源代码]#

在不改变其数据的情况下,给稀疏矩阵赋予一个新的形状。

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

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

返回:

稀疏矩阵

返回类型:

cupyx.scipy.sparse.coo_matrix

rint()[源代码]#

逐元素取整。

set_shape(shape)[源代码]#
setdiag(values, k=0)[源代码][源代码]#

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

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

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

sign()[源代码]#

逐元素符号。

sin()[源代码]#

逐元素正弦。

sinh()[源代码]#

逐元素的双曲正弦函数。

sqrt()[源代码]#

逐元素平方根。

sum(axis=None, dtype=None, out=None)[源代码]#

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

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

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

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

返回:

求和数组。

返回类型:

cupy.ndarray

参见

scipy.sparse.spmatrix.sum()

sum_duplicates()[源代码][源代码]#

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

警告

在排序索引时,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()[源代码]#

逐元素的 tan 函数。

tanh()[源代码]#

逐元素 tanh。

toarray(order=None, out=None)[源代码][源代码]#

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

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

  • out – 不支持。

返回:

表示相同值的密集数组。

返回类型:

cupy.ndarray

tobsr(blocksize=None, copy=False)[源代码]#

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

tocoo(copy=False)[源代码][源代码]#

将矩阵转换为 COOrdinate 格式。

参数:

copy (bool) – 如果 False ,它会尽可能多地共享数据数组。

返回:

转换后的矩阵。

返回类型:

cupyx.scipy.sparse.coo_matrix

tocsc(copy=False)[源代码][源代码]#

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

参数:

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

返回:

转换后的矩阵。

返回类型:

cupyx.scipy.sparse.csc_matrix

tocsr(copy=False)[源代码][源代码]#

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

参数:

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

返回:

转换后的矩阵。

返回类型:

cupyx.scipy.sparse.csr_matrix

todense(order=None, out=None)[源代码]#

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

todia(copy=False)[源代码]#

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

todok(copy=False)[源代码]#

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

tolil(copy=False)[源代码]#

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

transpose(axes=None, copy=False)[源代码][源代码]#

返回一个转置矩阵。

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

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

返回:

转置矩阵。

返回类型:

cupyx.scipy.sparse.spmatrix

trunc()[源代码]#

逐元素截断。

__eq__(other)[源代码]#

返回 self==value。

__ne__(other)[源代码]#

返回 self!=value。

__lt__(other)[源代码]#

返回 self<value。

__le__(other)[源代码]#

返回 self<=value。

__gt__(other)[源代码]#

返回 self>value。

__ge__(other)[源代码]#

返回 self>=value。

__nonzero__()[源代码]#
__bool__()[源代码]#

属性

A#

该矩阵的密集 ndarray 表示。

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

H#
T#
device#

此数组所在的 CUDA 设备。

dtype#

矩阵的数据类型。

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