Python scipy.sparse矩阵使用方法,,本文以csr_mat
Python scipy.sparse矩阵使用方法,,本文以csr_mat
本文以csr_matrix为例来说明sparse矩阵的使用方法,其他类型的sparse矩阵可以参考https://docs.scipy.org/doc/scipy/reference/sparse.html
csr_matrix是Compressed Sparse Row matrix的缩写组合,下面介绍其两种初始化方法
csr_matrix((data, (row_ind, col_ind)), [shape=(M, N)])
wheredata,row_indandcol_indsatisfy the relationshipa[row_ind[k],col_ind[k]]=data[k].
csr_matrix((data, indices, indptr), [shape=(M, N)])
is the standard CSR representation where the column indices for row i are stored inindices[indptr[i]:indptr[i+1]]and their corresponding values are stored indata[indptr[i]:indptr[i+1]]. If the shape parameter is not supplied, the matrix dimensions are inferred from the index arrays.
上述官方文档给出了:稀疏矩阵的参数及其含义、稀疏矩阵的构造方式。阐述形式简单明了,读起来令人赏心悦目。
Sparse matrices can be used in arithmetic operations: they support addition, subtraction, multiplication, division, and matrix power
Advantages of the CSR format
efficient arithmetic operations CSR + CSR, CSR * CSR, etc.efficient row slicingfast matrix vector productsDisadvantages of the CSR format
slow column slicing operations (consider CSC)changes to the sparsity structure are expensive (consider LIL or DOK)上述官方文档时稀疏矩阵的一些特性以及csr_matrix的优缺点,并且在指明各种缺点的同时,提供了可以考虑的技术实现。
代码示例1
import numpy as npfrom scipy.sparse import csr_matrixrow = np.array([0, 0, 1, 2, 2, 2])col = np.array([0, 2, 2, 0, 1, 2])data = np.array([1, 2, 3, 4, 5, 6])a = csr_matrix((data, (row, col)), shape=(3, 3)).toarray()
print(a)
运行结果:
array([[1, 0, 2], [0, 0, 3], [4, 5, 6]])
代码示例2
indptr = np.array([0, 2, 3, 6])indices = np.array([0, 2, 2, 0, 1, 2])data = np.array([1, 2, 3, 4, 5, 6])a = csr_matrix((data, indices, indptr), shape=(3, 3)).toarray()print(a)
允许结果:
array([[1, 0, 2], [0, 0, 3], [4, 5, 6]])
上述两个代码示例也是摘自官方文档,表明了每种初始化方式的简单实现,给应用这种初始化方式的人很大启发。
总结:官方文档其实是很好的书写程序文档范例,欣赏她,模仿她,然后在实际中应用她...
Python scipy.sparse矩阵使用方法
相关内容
- python判断变量类型是否为List列表,,li =["hell
- 【Python】从汇率转换算法谈起,,CurStr = i
- Python Treelib 多叉树 数据结构 中文使用帮助文档,,树,
- python基本语法,,近期,我会把pyth
- Python——jieba库初使用,, 今日一言:“从来
- 使用python操作redis(管道),,一、redis连接r
- Python用户界面编程PyQt5的四种的布局方式,,1、QT是C++编
- 万张PubFig人脸数据实现基于python+OpenCV的人脸特征定位程
- python列表之添加、修改和删除元素,,修改列表中的元素
- python实现scp功能,,最近公司有一个需求,
评论关闭