做网站建设的有哪些,dedecms织梦和wordpress,申请一个域名,昆明网络推广优化安装#xff1a;pip install scipy 描述#xff1a;就是专门为了解决稀疏矩阵而生。导入模块#xff1a;from scipy import sparse
优缺点总结
七种矩阵类型描述coo_matrix ★【名称】coordinate format 【优点】 ① 不同稀疏格式间转换效率高(特别是CSR和CSC) …安装pip install scipy 描述就是专门为了解决稀疏矩阵而生。导入模块from scipy import sparse
优缺点总结
七种矩阵类型描述coo_matrix ★【名称】coordinate format 【优点】 ① 不同稀疏格式间转换效率高(特别是CSR和CSC) ② 不支持元素的存取和增删但是易于保存和读取。 ③ 构建矩阵时允许坐标重复。 【缺点】 ① 不能直接运算 ② 不能直接切片操作。dok_matrix【说明】基于Keys的稀疏矩阵字典. (Dictionary of Keys format) 【功能】创建、转换lil_matrix★【名称】基于行的链表稀疏矩阵 (List of Lists format) 【优点】 ① 快速按行切片 ② 高效地添加、删除、查找元素 【缺点】 ① 按列切片很慢建议CSC ② 算术运算LILLIL很慢考虑CSR或CSCcsr_matrix【名称】Compressed Sparse Row format 【优点】 ① 高效的矩阵加法与乘法内积运算 ② 高效的行切片操作 ③ CSR格式在存储稀疏矩阵时非零元素平均使用的字节数(Bytes per Nonzero Entry)最为稳定float类型约为8.5double类型约为12.5CSR格式常用于读入数据后进行稀疏矩阵计算。 【缺点】 ① 列切片操作慢相比CSC) ② 转换成稀疏结构成本高相比LIL)csc_matrix【名称】Compressed Sparse Column format 【优点】 ① 高效的矩阵加法与乘法内积运算 ② 高效的列切片操作 【缺点】 ① 矩阵内积操作没有CSR快 ② 行切片操作慢相比CSR) ③ 转换成稀疏结构成本高相比LIL)bsr_matrix【名称】Block Sparse Row formatdia_matrix【名称】DIAgonal format
使用总结
coo_matrix
创建
# 方式一ijv 创建data [5,2,3,0]row [2,2,3,2]col [3,4,2,3]c sparse.coo_matrix((data,(row,col)),shape(5,6))print(c.toarray())
[[0 0 0 0 0 0][0 0 0 0 0 0][0 0 0 5 2 0][0 0 3 0 0 0][0 0 0 0 0 0]]# 方式二创建零矩阵from scipy.sparse import coo_matrixcoo_matrix((3, 4), dtypenp.int8).toarray()
array([[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]], dtypeint8)# 方式三创建有重复索引的矩阵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 summednp.max(coo.data)
1coo.toarray()
array([[3, 0, 1, 0],[0, 2, 0, 0],[0, 0, 0, 0],[0, 0, 0, 1]])【预处理】
# 整个过程是为了创建对称矩阵
# coo.T.multiply(coo.T coo)找出不对称的正元素,并转置
# -coo.multiply(coo.T coo)找出不对称的负元素并将其删掉
coo coo coo.T.multiply(coo.T coo) - coo.multiply(coo.T coo)【保存和读取】
import scipy.sparse as sparse
sparse.save_npz(coo_matrix.npz,coo_save)
coosparse.load_npz(coo_matrix.npz)【转换】
# 转化为其他格式coo.tocsc()coo.tocsr()coo.todense() # 转化为 numpy.matrix类型【转置】
# 转置
coo.Tdok_matrix
创建
# 创建import numpy as npfrom scipy.sparse import dok_matrixS dok_matrix((5, 5), dtypenp.float32)for i in range(5):for j in range(5):S[i, j] i j获取索引
from scipy.sparse import dok_matrix
Sdok_matrix((10,10),dtypeint)
S[1,1]10
S[1,2]10
S[1,3]10
S[1,8]10
tmp(S[1,:]10)
print(tmp.indices)
[1 2 3 8]转换
# convert to coo
S.tocoo()# convert to numpy
print(S.toarray())[[ 0. 1. 2. 3. 4.][ 1. 2. 3. 4. 5.][ 2. 3. 4. 5. 6.][ 3. 4. 5. 6. 7.][ 4. 5. 6. 7. 8.]]lil_matrix
【适用的场景】逐渐添加矩阵的元素。 【使用】
from scipy.sparse import lil_matrix
l lil_matrix((6,5))
l[2,3] 1
l[3,4] 2
l[3,2] 3
print(l.toarray())[[ 0. 0. 0. 0. 0.][ 0. 0. 0. 0. 0.][ 0. 0. 0. 1. 0.][ 0. 0. 3. 0. 2.][ 0. 0. 0. 0. 0.][ 0. 0. 0. 0. 0.]]# 列求和
print(l.sum(0))[[0. 0. 3. 1. 2.]]# 行求和
print(l.sum(1))[[0.][0.][1.][5.][0.][0.]]dia_matrix
【使用】 #data定义对角线元素在这里是[1,2,3,4]。data np.array([[1, 2, 3, 4]]).repeat(3, axis0)#offsets定义对角线的偏移量0代表正对角线正数代表往上偏移负数代表往下偏移offsets np.array([0, -1, 2])dia_matrix((data, offsets), shape(4, 4)).toarray()
array([[1, 0, 3, 0],[1, 2, 0, 4],[0, 2, 3, 0],[0, 0, 3, 4]])csr_matrix
【使用】 from scipy.sparse import csr_matrixindptr np.array([0, 2, 3, 6])indices np.array([0, 2, 2, 0, 1, 2])data np.array([1, 2, 3, 4, 5, 6])csr_matrix((data, indices, indptr), shape(3, 3)).toarray()
array([[1, 0, 2],[0, 0, 3],[4, 5, 6]])import numpy as np
from scipy.sparse import csr_matrix
arr np.array([0, 0, 0, 0, 0, 1, 1, 0, 2])# 【创建压缩稀疏行】
print(csr_matrix(arr))(0, 5) 1 (0, 6) 1 (0, 8) 2 #【查看存储的不含0元素的数据】print(csr_matrix(arr).data)#【计算非0元素的总数】print(csr_matrix(arr).count_nonzero()) #【 删除矩阵中0元素】mat csr_matrix(arr)mat.eliminate_zeros()#【删除重复项】mat csr_matrix(arr)mat.sum_duplicates()#【行压缩(csr)转为列压缩(csc)】newarr csr_matrix(arr).tocsc()csc_matrix
【说明】压缩稀疏列矩阵(Compressed sparse column matrix) 【使用】 bsr_matrix
【使用】 BSR矩阵中的inptr列表的第i个元素与i1个元素是储存第i行的数据的列索引以及数据的区间索引即indices[indptr[i]:indptr[i1]]为第i行元素的列索引data[indptr[i]: indptr[i1]]为第i行元素的data。在下面的例子中对于第0行indptr[0]:indptr[1] - 0:2, 因此第0行的列为indice[0:2][0,2],data为data[0:2]array([[[1, 1],[1, 1]],[[2, 2],[2, 2]]]),对应的就是最后结果的第0,1行. 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]).repeat(4).reshape(6, 2, 2)bsr_matrix((data,indices,indptr), shape(6, 6)).toarray()
array([[1, 1, 0, 0, 2, 2],[1, 1, 0, 0, 2, 2],[0, 0, 0, 0, 3, 3],[0, 0, 0, 0, 3, 3],[4, 4, 5, 5, 6, 6],[4, 4, 5, 5, 6, 6]])
文章转载自: http://www.morning.lhztj.cn.gov.cn.lhztj.cn http://www.morning.gjcdr.cn.gov.cn.gjcdr.cn http://www.morning.qphgp.cn.gov.cn.qphgp.cn http://www.morning.ydflc.cn.gov.cn.ydflc.cn http://www.morning.jllnh.cn.gov.cn.jllnh.cn http://www.morning.qyglt.cn.gov.cn.qyglt.cn http://www.morning.ltdrz.cn.gov.cn.ltdrz.cn http://www.morning.zdtfr.cn.gov.cn.zdtfr.cn http://www.morning.zrgdd.cn.gov.cn.zrgdd.cn http://www.morning.hkpn.cn.gov.cn.hkpn.cn http://www.morning.rddlz.cn.gov.cn.rddlz.cn http://www.morning.lfqtp.cn.gov.cn.lfqtp.cn http://www.morning.lpskm.cn.gov.cn.lpskm.cn http://www.morning.xskbr.cn.gov.cn.xskbr.cn http://www.morning.bkjhx.cn.gov.cn.bkjhx.cn http://www.morning.pybqq.cn.gov.cn.pybqq.cn http://www.morning.xhlpn.cn.gov.cn.xhlpn.cn http://www.morning.hcwjls.com.gov.cn.hcwjls.com http://www.morning.fbbmg.cn.gov.cn.fbbmg.cn http://www.morning.rsmtx.cn.gov.cn.rsmtx.cn http://www.morning.hkpyp.cn.gov.cn.hkpyp.cn http://www.morning.ngqty.cn.gov.cn.ngqty.cn http://www.morning.xirfr.cn.gov.cn.xirfr.cn http://www.morning.fhddr.cn.gov.cn.fhddr.cn http://www.morning.xhhqd.cn.gov.cn.xhhqd.cn http://www.morning.seoqun.com.gov.cn.seoqun.com http://www.morning.hsjfs.cn.gov.cn.hsjfs.cn http://www.morning.nfmlt.cn.gov.cn.nfmlt.cn http://www.morning.qieistand.com.gov.cn.qieistand.com http://www.morning.nkiqixr.cn.gov.cn.nkiqixr.cn http://www.morning.zsyrk.cn.gov.cn.zsyrk.cn http://www.morning.skdrp.cn.gov.cn.skdrp.cn http://www.morning.kjrlp.cn.gov.cn.kjrlp.cn http://www.morning.kwwkm.cn.gov.cn.kwwkm.cn http://www.morning.jokesm.com.gov.cn.jokesm.com http://www.morning.nbgfz.cn.gov.cn.nbgfz.cn http://www.morning.clbzy.cn.gov.cn.clbzy.cn http://www.morning.wgtr.cn.gov.cn.wgtr.cn http://www.morning.qphcq.cn.gov.cn.qphcq.cn http://www.morning.nzqmw.cn.gov.cn.nzqmw.cn http://www.morning.zmwzg.cn.gov.cn.zmwzg.cn http://www.morning.dpzcc.cn.gov.cn.dpzcc.cn http://www.morning.ngdkn.cn.gov.cn.ngdkn.cn http://www.morning.dhckp.cn.gov.cn.dhckp.cn http://www.morning.jkwwm.cn.gov.cn.jkwwm.cn http://www.morning.pkwwq.cn.gov.cn.pkwwq.cn http://www.morning.wjhdn.cn.gov.cn.wjhdn.cn http://www.morning.rcbdn.cn.gov.cn.rcbdn.cn http://www.morning.twhgn.cn.gov.cn.twhgn.cn http://www.morning.fllfz.cn.gov.cn.fllfz.cn http://www.morning.rpljf.cn.gov.cn.rpljf.cn http://www.morning.wmfmj.cn.gov.cn.wmfmj.cn http://www.morning.wqrdx.cn.gov.cn.wqrdx.cn http://www.morning.dbhnx.cn.gov.cn.dbhnx.cn http://www.morning.frpm.cn.gov.cn.frpm.cn http://www.morning.nccyc.cn.gov.cn.nccyc.cn http://www.morning.wmfr.cn.gov.cn.wmfr.cn http://www.morning.bktzr.cn.gov.cn.bktzr.cn http://www.morning.tngdn.cn.gov.cn.tngdn.cn http://www.morning.ndpwg.cn.gov.cn.ndpwg.cn http://www.morning.trqzk.cn.gov.cn.trqzk.cn http://www.morning.rqqct.cn.gov.cn.rqqct.cn http://www.morning.wncb.cn.gov.cn.wncb.cn http://www.morning.qwqzk.cn.gov.cn.qwqzk.cn http://www.morning.rjyd.cn.gov.cn.rjyd.cn http://www.morning.rpms.cn.gov.cn.rpms.cn http://www.morning.dfygx.cn.gov.cn.dfygx.cn http://www.morning.rbxsk.cn.gov.cn.rbxsk.cn http://www.morning.ngjpt.cn.gov.cn.ngjpt.cn http://www.morning.mmqng.cn.gov.cn.mmqng.cn http://www.morning.tjqcfw.cn.gov.cn.tjqcfw.cn http://www.morning.zkqwk.cn.gov.cn.zkqwk.cn http://www.morning.kpyyf.cn.gov.cn.kpyyf.cn http://www.morning.jwwfk.cn.gov.cn.jwwfk.cn http://www.morning.kxqpm.cn.gov.cn.kxqpm.cn http://www.morning.xnlj.cn.gov.cn.xnlj.cn http://www.morning.jjzbx.cn.gov.cn.jjzbx.cn http://www.morning.muzishu.com.gov.cn.muzishu.com http://www.morning.pmdzd.cn.gov.cn.pmdzd.cn http://www.morning.mbhdl.cn.gov.cn.mbhdl.cn