栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

scipy.sparse将稠密矩阵转为稀疏矩阵并按各个属性保存

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

scipy.sparse将稠密矩阵转为稀疏矩阵并按各个属性保存

稠密矩阵是我们在处理大型数据时,经常会遇到的;然而由于其稀疏性,直接将其存储势必会造成内存的浪费,那么如何将其转为稀疏矩阵并将其各个属性进行保存?本文将简单的实例进行讲解。 一、将稠密矩阵转为稀疏矩阵 1.首先需要有一个稠密矩阵,此处记作adj:

2.将稠密矩阵adj转为稀疏矩阵adj_sp:
import scipy.sparse
adj_sp=scipy.sparse.csr_matrix(adj)
adj_sp


(顺便提一下:稀疏转稠密的代码:adj_sp.todense() )
(另外,转为稀疏的方式有很多,并不只有以上这一种方式,具体可以参考:https://blog.csdn.net/jeffery0207/article/details/100064602?)

3.查看稀疏矩阵adj_sp中的各个属性:
各个属性的具体含义可以参考:https://blog.csdn.net/Sherry_Yue/article/details/102652829
(1)adj_data=adj_sp.data
(2)adj_indices=adj_sp.indices
(3)adj_indptr=adj_sp.indptr
(4)adj_shape=adj_sp.shape

二、将稀疏矩阵中各个属性存储为.npz格式
import numpy as np
np.savez("adj.npz",adj_data=adj_data,adj_indices=adj_indices,adj_indptr=adj_indptr,adj_shape=adj_shape)
("  "内表示存储的文件名,也可以存储到指定目录下。)
(常见文件存储以及读取的函数可以参考:https://blog.csdn.net/weixin_40547993/article/details/89643636?)

三、读取.npz文件 1.字典方式读取文件:
loader=dict(np.load("adj.npz"))
loader

2.将读取内容再转为稀疏矩阵形式
test=scipy.sparse.csr_matrix((loader['adj_data'],loader['adj_indices'],loader['adj_indptr']),shape=loader['adj_shape'])
test

3.将稀疏转为稠密格式查看:
test.todense()


可以看到和我们最初的稠密矩阵adj是完全相同的。

至此关于稠密矩阵转稀疏,以及稀疏矩阵各个属性的查看,以及按照属性对稀疏矩阵进行.npz文件的存储,以及对.npz文件的读取,以及对读出的内容再转化为稀疏矩阵及稠密矩阵的问题到此结束!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/757319.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号