numpy之数据保存与读取(代码片段)

jclian91 jclian91     2023-04-12     681

关键词:

??在pandas使用的25个技巧中介绍了几个常用的Pandas的使用技巧,不少技巧在机器学习和深度学习方面很有用处。本文将会介绍Numpy在数据保存和读取方面的内容,这些在机器学习和深度学习方向也大有用处,因为通常我们会采用Numpy和Pandas处理数据,尤其是Pytorch,它和Numpy的结合更为紧密。
??我们先介绍Numpy的几个函数:

numpy.savez(file, *args, **kwds)
file:文件名/文件路径
*args:要存储的数组,可以写多个,如果没有给数组指定Key,Numpy将默认从'arr_0','arr_1'的方式命名

numpy.savez_compressed
使用办法和numpy.savez一样,但是保存的文件会有压缩,可以减小文件大小。

numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='
', header='', footer='', comments='# ', encoding=None)
保存为txt文件,fname为文件名称,X为numpy中的变量,fmt为保存格式,delimiter为分隔符。

??我们的示例Python代码如下:

# -*- coding: utf-8 -*-
# author: Jclian91
# place: Pudong Shanghai
# time: 2020/3/14 15:14
import numpy as np

# 创建1000*1000的矩阵,元素为0-1之间的随机数
matrix = np.random.rand(1000, 1000)

# 使用save_z和save_compressed保存maxtrix
np.savez("rand_matrix", matrix=matrix)
np.savez_compressed("rand_matrix_compressed", matrix=matrix)

# 保存为txt格式
np.savetxt("rand_matrix.txt", matrix, fmt="%.6f", delimiter=",")

需要注意的是,savetxt函数最多只能保存2维矩阵,3维以上就会报错,rand_matrix.txt中的部分内容如下:
技术图片
我们看一下保存的文件大小:
技术图片
可以看到,用savez_compressed保存的文件会比savez保存的文件小,这是因为该函数在文件打包时进行了压缩。
??接着是读取npz文件中的内容,我们以rand_matrix.npz为例,示例代码如下:

# -*- coding: utf-8 -*-
# author: Jclian91
# place: Pudong Shanghai
# time: 2020/3/14 15:39
import numpy as np

# 读取npz文件
mat = np.load("rand_matrix.npz")["matrix"]

# 输出mat的相关信息
print(mat.shape)
print(mat[:5, :5])

输出内容如下:

(1000, 1000)
[[0.92338524 0.08321306 0.60686435 0.57764367 0.93594528]
 [0.10552397 0.98878422 0.5237701  0.03220633 0.85022735]
 [0.06755187 0.18767634 0.24769326 0.83413499 0.69020446]
 [0.20900975 0.47176702 0.9302718  0.47056681 0.76258641]
 [0.46927451 0.72896195 0.50372099 0.58216099 0.58198673]]

??最后,我们将numpy中的矩阵保存为pickle文件,示例代码如下:

# -*- coding: utf-8 -*-
# author: Jclian91
# place: Pudong Shanghai
# time: 2020/3/14 15:45
import numpy as np
import pickle

# 创建1000*1000的矩阵,元素为0-1之间的随机数
matrix = np.random.rand(1000, 1000)

# 保存为pickle文件
with open("rand_matrix.pk", "wb") as f:
    pickle.dump(matrix, f)

生成的文件大小如下:
技术图片
可以发现生成的pickle文件和numpy中的savez函数保存的文件大小一样。
??本次分享到此结束,感谢大家阅读~

opencv之python版图像的读取显示保存像素遍历以及结合matplotlib使用(代码片段)

文章目录1.图像的表示2.图像读取、显示与保存3.简单使用3.1读取图像大小3.2绘制基本图形3.3图像的元素遍历4.结合Matplotlib显示图像1.图像的表示在opencv的C++代码中,表示图像有专门的结构cv::Mat,在python中有numpy工具... 查看详情

python数据分析与展示-数据分析之表示-numpy数据存取与函数(代码片段)

NumPy数据存取与函数 数据的CSV文件存取CSV文件CSV(Comma-SeparatedValue,逗号分隔值)CSV是一种常见的文件格式,用来存储批量数据。 将数据写入CSV文件np.savetxt(frame,array,fmt=‘%.18e‘,delimiter=None)-frame:文件、字符串或产生器,可以... 查看详情

numpy的文件存储,读取.npy.npz文件(代码片段)

Numpy能够读写磁盘上的文本数据或二进制数据。 将数组以二进制格式保存到磁盘 np.load和np.save是读写磁盘数组数据的两个主要函数,默认情况下,数组是以未压缩的原始二进制格式保存在扩展名为.npy的文件中。importnumpyas... 查看详情

python数据清洗之numpy(代码片段)

文章目录一、Numpy数据类型与常用数组1.1构建ndarray1.2指定类型创建1.3查看类型ndarray.dtype1.4类型转换ndarray.astype()1.5常用的数组1.5.1np.arange()1.5.2np.linspace()1.5.3np.zeros()1.5.4np.ones()1.5.5np.eye()1.5.6np.full()1.5.7设置空值1.5.8随机数组 查看详情

自动化测试-17.selenium数据的分离之txt文本的写入与读取(代码片段)

前言  数据量偏小时,用txt文本保存数据比较合适,以-进行区分,为什么不用:呢?原因是,我们在使用数据时,会存在url地址的情况,里面宝行:所以用-进行替代此处附上代码1#encoding=utf-823defload_dict_from_file(filepath):4_dict=5tr... 查看详情

numpy数组的保存与读取方法

...nbsp;1.数组以二进制格式保存np.save和np.load是读写磁盘数组数据的两个主要函数。默认情况下,数组以未压缩的原始二进制格式保存在扩展名为npy的文件中,以数组a为例np.save("filename.npy",a)b=np.load("filename.npy")利用这种方法,保存文... 查看详情

学机器学习,不会数据分析怎么行?之numpy详解(代码片段)

最近学习强化学习和机器学习,意识到数据分析的重要性,就开始补Python的几个科学计算库,并总结到博客中。本篇博客中用到的代码在这里下载。什么是Numpy? NumPy是Python数值计算最重要的基础包,支持高级大量的维度数... 查看详情

数据分析之numpy-数组计算(代码片段)

引言:   数据分析:就是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出研究对象的内在规律.   数据分析三剑客:Numpy  数组计算          Pandas  表计算与数据分析   ... 查看详情

数据分析之numpy篇(代码片段)

数据分析之numpy篇文章目录数据分析之numpy篇numpy简介数据类型相关数组的形状数组的计算numpy转置numpy索引和切片数值修改和bool索引三元运算符where裁剪clip数组的拼接数组的行列交换最值、全0/1数组、I/Enumpy生成随机数numpy的copy... 查看详情

数据分析之numpy篇(代码片段)

数据分析之numpy篇文章目录数据分析之numpy篇numpy简介数据类型相关数组的形状数组的计算numpy转置numpy索引和切片数值修改和bool索引三元运算符where裁剪clip数组的拼接数组的行列交换最值、全0/1数组、I/Enumpy生成随机数numpy的copy... 查看详情

python用numpy读取数据(代码片段)

查看详情

python数据分析pandas之数据拼接与连接(代码片段)

Python数据分析pandas之数据拼接与连接数据拼接处理数据拼接处理指的是numpy、pandas里对数据的拼接、连接、合并等多种方法的概称。有时我们处理的数据会分很多步骤,而中间或者最终的结果可能是由多个数据框、多维数组... 查看详情

tensorflow机器学习入门——cifar10数据集的读取展示与保存(代码片段)

...图片:50000张用于训练、10000张用于测试图片大小为:32X32数据集图片分为10类:每类6000张数据集下载解压后的目录结构:读取、打印和保存数据集中指定的图片:importpickleimportmatplotlib.pyplotaspltCIFAR_DIR="cifar10_data/cifar-10-batches-bin/da... 查看详情

python数据分析基础之numpy库详解(代码片段)

...numpy介绍Numpy数组对象创建多维数组获取数组中的元素Numpy数据类型数据类型对象Numpy字符编码自定义数据类型dtype类的属性创建自定义数据类型安装numpy库直接安装:pipinstallnumpy换源安装pipinstallnumpy-ihttps://pypi.douban.com/simple或... 查看详情

数据分析之道-numpynumpy切片与索引(代码片段)

...创作者,专注于分享python领域知识。✍本文录入于《数据分析之道》,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。✍订阅后,可以阅读《数据分... 查看详情

python数据分析与可视化numpy数值计算(实训一)(代码片段)

NumPy数值计算(实训一)1.导入模块2.获取数据3.数据清理:去掉索引号4.数据统计(1)创建数据类型(2)创建二维数组(3)将待处理数据待类型转化为float类型(4)数据排序(5)... 查看详情

spark的rdd文件读取与保存(代码片段)

RDD文件读取与保存Spark的数据读取及数据保存可以从两个维度来作区分:文件格式以及文件系统。其中:(1)文件格式分为:text文件、csv文件、sequence文件以及Object文件;(2)文件系统分为:... 查看详情

numpy:读取本地文件及数据处理(代码片段)

CONTENT轴(axis)CSV文件Numpy读取数据numpy.loadtxt()数据处理Numpy中的转置(1)Array.transpose()(2)Array.swapaxes(1,0)(交换轴)(3)Array.T取行数据(1 查看详情