本文主要是介绍[译]coo_matrix,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
class scipy.sparse.coo_matrix(arg1, shape=None, dtype=None, copy=False)
坐标格式(COOrdinate format)的稀疏矩阵。coo就是COOrdinate的缩写
又名’ijv’或’triplet’格式。
举例说明如下:
-
coo_matrix(D)
密集矩阵
-
coo_matrix(S)
另一个稀疏矩阵S,等价于
S.tocoo()
-
coo_matrix((M, N), [dtype])
构造一个(M, N)结构的0矩阵,dtype可选,默认’d’
-
coo_matrix((data, (i, j)), [shape=(M, N)])
从三种方式构造:
-
data[:] 非零数据
-
i[:] matrix entries矩阵元素的行索引
-
j[:] 矩阵元素的列索引
-
稀疏矩阵可用于算数运算:支持加减乘除以及矩阵运算。
COO形式优点:
- 稀疏格式间的快速转换
- 允许复制元素
- 与CSR/CSC形式间快速互换
COO形式缺点:(不能直接支持)
- 算术运算
- 切片
- COO是构建稀疏矩阵的快速形式
- 只有矩阵构建后,再转成CSR、CSC形式用于快速算术及矩阵运算
- 默认情况下,当转成CSR、CSC形式,(i,j)元素副本会被求和。这有助于快速构建有限元素矩阵。
>>> from scipy.sparse import coo_matrix
>>> coo_matrix((3,4), dtype=np.int8).todense()
matrix([[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]], dtype=int8)
>>>
>>> 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)).todense()
matrix([[4, 0, 9, 0],[0, 7, 0, 0],[0, 0, 0, 0],[0, 0, 0, 5]])
>>>
>>> # example with duplicates
>>> 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_matrix((data, (row,col)), shape=(4,4)).todense()
matrix([[3, 0, 1, 0],[0, 2, 0, 0],[0, 0, 0, 0],[0, 0, 0, 1]])
Methods | 意义 |
---|---|
tocsc () | Compressed Sparse Column 形式的副本 |
tocsr () | Compressed Sparse Row 形式的副本 |
todense ([order, out]) | 返回这个矩阵的稠密表示 |
这篇关于[译]coo_matrix的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!