稀疏矩阵加法运算_SciPy 稀疏矩阵笔记

本文介绍了如何在SciPy中选择和使用稀疏矩阵,包括coo_matrix、lil_matrix、csc_matrix和csr_matrix。重点讨论了它们在内存效率和特定操作上的优势,如矩阵加法和行列切片,并展示了如何转换和节省内存。
摘要由CSDN通过智能技术生成

e3eba134016fb3bc699204a508b69e66.png

众所周知,稀疏矩阵是指矩阵中大多数元素都是0的矩阵。对于稀疏矩阵,把它们当成正常矩阵来存储会很浪费空间,尤其是当矩阵的维度特别大的时候。存储稀疏矩阵的合理方式,是只存储非零元素的值,和它们在矩阵中的位置。

SciPy 中有 7 种存储稀疏矩阵的数据结构:

  1. bsr_matrix: Block Sparse Row matrix
  2. coo_matrix: COOrdinate format matrix
  3. csc_matrix: Compressed Sparse Column matrix
  4. csr_matrix: Compressed Sparse Row matrix
  5. dia_matrix: Sparse matrix with DIAgonal storage
  6. dok_matrix: Dictionary Of Keys based sparse matrix
  7. lil_matrix: Row-based LInked List sparse matrix

如何选择正确的稀疏矩阵

不同的稀疏矩阵适用的操作不同。如果想创建一个新的稀疏矩阵,lil_matrixdok_matrixcoo_matrix会比高效,但是它们不适合做矩阵运算。如果想做矩阵运算,例如矩阵乘法、求逆等,应该用 CSC 或者 CSR 类型的稀疏矩阵。由于在内存中存储顺序的差异,csc_matrix 矩阵更适合取列切片,而 csr_matrix 矩阵更适合用来取行切片。

几种稀疏矩阵的用法

这里只介绍其中的 coo_matrixcsc_matrixcsr_matrixlil_matrix

加载必要的库:

from scipy import sparse 
import numpy as np 

coo_matrix

coo_matrix 是最直观的稀疏矩阵定义方式。它的全称是 coordinate sparse matrix,从名字可以看出,它通过非零元素在矩阵中的坐标存储稀疏矩阵。 下面的代码将展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值