本文简要介绍 python 语言中 scipy.sparse.coo_matrix
的用法。
用法:
class scipy.sparse.coo_matrix(arg1, shape=None, dtype=None, copy=False)#
COOrdinate 格式的稀疏矩阵。
也称为‘ijv’ 或‘triplet’ 格式。
- coo_matrix(D)
其中 D 是二维 ndarray
- coo_matrix(S)
与另一个稀疏数组或矩阵 S (相当于 S.tocoo())
- coo_matrix((M, N), [dtype])
构造一个形状为 (M, N) 的空矩阵 dtype 是可选的,默认为 dtype='d'。
- coo_matrix((数据, (i, j)), [形状=(M, N)])
- 从三个数组构造:
data[:] 矩阵的条目,以任意顺序
i[:] 矩阵条目的行索引
j[:] 矩阵条目的列索引
其中
A[i[k], j[k]] = data[k]
。未指定形状时,从索引数组推断
这可以通过多种方式实例化::
注意:
稀疏矩阵可用于算术运算:它们支持加法、减法、乘法、除法和矩阵幂。
促进稀疏格式之间的快速转换
允许重复条目(参见示例)
与 CSR/CSC 格式之间的快速转换
- 不直接支持:
算术运算
slicing
COO 是一种用于构建稀疏矩阵的快速格式
构建 COO 矩阵后,转换为 CSR 或 CSC 格式,以进行快速算术和矩阵向量运算
默认情况下,当转换为 CSR 或 CSC 格式时,重复的 (i,j) 条目将被汇总在一起。这有助于有效构建有限元矩阵等。 (见示例)
条目和索引按行排序,然后按列排序。
没有重复的条目(即重复的 (i,j) 位置)
数据数组可以有明确的零。
COO格式的优势:
COO格式的缺点:
预期用途:
规范格式:
例子:
>>> # Constructing an empty matrix >>> import numpy as np >>> from scipy.sparse import coo_matrix >>> coo_matrix((3, 4), dtype=np.int8).toarray() array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]], dtype=int8)
>>> # Constructing a matrix using ijv format >>> row = np.array([0, 3, 1, 0]) >>> col = np.array([0, 3, 1, 2]) >>> data = np.array([4, 5, 7, 9]) >>> coo_matrix((data, (row, col)), shape=(4, 4)).toarray() array([[4, 0, 9, 0], [0, 7, 0, 0], [0, 0, 0, 0], [0, 0, 0, 5]])
>>> # Constructing a matrix with duplicate indices >>> row = np.array([0, 0, 1, 3, 1, 0, 0]) >>> col = np.array([0, 2, 1, 3, 1, 0, 0]) >>> data = np.array([1, 1, 1, 1, 1, 1, 1]) >>> coo = coo_matrix((data, (row, col)), shape=(4, 4)) >>> # Duplicate indices are maintained until implicitly or explicitly summed >>> np.max(coo.data) 1 >>> coo.toarray() array([[3, 0, 1, 0], [0, 2, 0, 0], [0, 0, 0, 0], [0, 0, 0, 1]])
相关用法
- Python SciPy sparse.coo_array用法及代码示例
- Python SciPy sparse.csc_matrix用法及代码示例
- Python SciPy sparse.csc_array用法及代码示例
- Python SciPy sparse.csr_matrix用法及代码示例
- Python SciPy sparse.csr_array用法及代码示例
- Python SciPy sparse.isspmatrix用法及代码示例
- Python SciPy sparse.save_npz用法及代码示例
- Python SciPy sparse.issparse用法及代码示例
- Python SciPy sparse.isspmatrix_csc用法及代码示例
- Python SciPy sparse.isspmatrix_csr用法及代码示例
- Python SciPy sparse.tril用法及代码示例
- Python SciPy sparse.dia_array用法及代码示例
- Python SciPy sparse.bmat用法及代码示例
- Python SciPy sparse.hstack用法及代码示例
- Python SciPy sparse.rand用法及代码示例
- Python SciPy sparse.dia_matrix用法及代码示例
- Python SciPy sparse.find用法及代码示例
- Python SciPy sparse.isspmatrix_dia用法及代码示例
- Python SciPy sparse.isspmatrix_lil用法及代码示例
- Python SciPy sparse.block_diag用法及代码示例
- Python SciPy sparse.diags用法及代码示例
- Python SciPy sparse.vstack用法及代码示例
- Python SciPy sparse.dok_matrix用法及代码示例
- Python SciPy sparse.kron用法及代码示例
- Python SciPy sparse.random用法及代码示例
注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.sparse.coo_matrix。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。