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