scipy.sparse.coo_matrix
scipy.sparse.coo_matrix(arg1, shape=None, dtype=None, copy=False)
坐标格式的稀疏矩阵。
也称为“ ijv”或“三胞胎”格式。
可以通过这几种方式实例化:
coo_matrix(D) | 带有密集矩阵D |
---|---|
coo_matrix(S) | 与另一个稀疏矩阵S(等效于S.tocoo()) |
coo_matrix((M, N), [dtype]) | 构造形状为(M,N)的空矩阵dtype是可选的,默认为dtype =‘d’。 |
coo_matrix((data, (i, j)), [shape=(M, N)]) | 从三个数组构造:1.data [:]矩阵的条目,以任何顺序 2.i [:]矩阵条目的行索引 3.j [:]矩阵条目的列索引 其中A [i [k],j [k]] =data[k]。 如果未指定形状,则从索引数组中推断出形状 |
优点:
- 容易构造
- 可以快速地转换成其他形式的稀疏矩阵
- 支持相同的(row,col)坐标上存放多个值
缺点:
- 不能直接进行算术运算和切片操作
官网例子
>>> # 构建空矩阵
>>> 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)
>>> # 用“ijv”的格式构建矩阵
>>> 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]])
具有的属性
属性 | 说明 |
---|---|
dtype | 矩阵的数据类型 |
shape | 矩阵的形状 |
ndim | 维数(常为2) |
nnz | 存储值的数量,包括显式零。 |
data | 矩阵的COO格式数据数组 |
row | 矩阵的COO格式行索引数组 |
col | 矩阵的COO格式列索引数组 |
可调用的方法
参考官网:https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.coo_matrix.html