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)))
所有
data
、row
和col
都是一维的cupy.ndarray
。
- 参数:
arg1 – 初始化的参数。
shape (tuple) – 矩阵的形状。其长度必须为 2。
dtype – 数据类型。它必须是
numpy.dtype
的参数。copy (bool) – 如果为
True
,则始终使用给定数据的副本。
方法
- conj(copy=True)[source]#
逐元素复共轭。
如果矩阵是非复数数据类型且 copy 为 False,则此方法不执行任何操作,并且不会复制数据。
- 参数:
copy (bool) – 如果为 True,则保证结果不与 self 共享数据。
- 返回:
逐元素复共轭。
- 返回类型:
- conjugate(copy=True)[source]#
逐元素复共轭。
如果矩阵是非复数数据类型且 copy 为 False,则此方法不执行任何操作,并且不会复制数据。
- 参数:
copy (bool) – 如果为 True,则保证结果不与 self 共享数据。
- 返回:
逐元素复共轭。
- 返回类型:
- diagonal(k=0)[source]#
返回矩阵的第 k 条对角线。
- 参数:
k (int, optional) – 获取哪条对角线,对应于元素
a[i – 0(主对角线)。
Default (i+k].) – 0(主对角线)。
- 返回:
第 k 条对角线。
- 返回类型:
- get(stream=None)[source]#
在主机内存上返回数组的副本。
- 参数:
stream (cupy.cuda.Stream) – CUDA 流对象。如果指定,复制操作将异步运行。否则,复制是同步的。
- 返回:
主机内存上的数组副本。
- 返回类型:
- mean(axis=None, dtype=None, out=None)[source]#
沿指定轴计算算术平均值。
- 参数:
axis (int or
None
) – 计算总和的轴。如果为None
,则计算所有元素的平均值。从{None, 0, 1, -2, -1}
中选择。- 返回:
平均值(或数组)。
- 返回类型:
另请参阅
scipy.sparse.spmatrix.mean()
- reshape(*shape, order='C')[source]#
在不改变数据的情况下为稀疏矩阵赋予新形状。
- 参数:
shape (tuple) – 新形状应与原始形状兼容。
order – {‘C’, ‘F’} (可选) 使用此索引顺序读取元素。‘C’ 表示使用类似 C 语言的索引顺序读写元素。‘F’ 表示使用类似 Fortran 语言的索引顺序读写元素。默认值:C。
- 返回:
稀疏矩阵
- 返回类型:
- sum(axis=None, dtype=None, out=None)[source]#
沿给定轴对矩阵元素求和。
- 参数:
axis (int or
None
) – 计算总和的轴。如果为None
,则计算所有元素的总和。从{None, 0, 1, -2, -1}
中选择。dtype – 返回矩阵的类型。如果未指定,则使用数组的类型。
out (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)
警告
调用此函数可能会同步设备。
- toarray(order=None, out=None)[source]#
返回表示相同值的密集矩阵。
- 参数:
order (str) – 不支持。
out – 不支持。
- 返回:
表示相同值的密集数组。
- 返回类型:
- tocsc(copy=False)[source]#
将矩阵转换为压缩稀疏列格式。
- 参数:
copy (bool) – 如果为
False
,则尽可能共享数据数组。实际上,此选项会被忽略,因为在 coo 到 csc 转换中,矩阵中的所有数组都无法共享。- 返回:
转换后的矩阵。
- 返回类型:
- tocsr(copy=False)[source]#
将矩阵转换为压缩稀疏行格式。
- 参数:
copy (bool) – 如果为
False
,则尽可能共享数据数组。实际上,此选项会被忽略,因为在 coo 到 csr 转换中,矩阵中的所有数组都无法共享。- 返回:
转换后的矩阵。
- 返回类型:
- transpose(axes=None, copy=False)[source]#
返回转置矩阵。
- 参数:
axes – 不支持此选项。
copy (bool) – 如果为
True
,返回的矩阵不共享数据。否则,它尽可能共享数据数组。
- 返回:
转置矩阵。
- 返回类型:
属性
- H#
- T#
- device#
此数组所在的 CUDA 设备。
- dtype#
矩阵的数据类型。
- format = 'coo'#
- ndim#
- nnz#
- shape#
- size#