资讯专栏INFORMATION COLUMN

python利用numpy存取文件

DrizzleX / 3571人阅读

摘要:提供了多种存取数组内容的文件操作函数。保存数组数据的文件可以是二进制格式或者文本格式。二进制格式的文件又分为专用的格式化二进制类型和无格式类型。

     NumPy提供了多种存取数组内容的文件操作函数。保存数组数据的文件可以是二进制格式或者文本格式。二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型。

 

numpy格式的文件可以保存为后缀为(.npy/.npz)格式的文件

1. tofile()和fromfile()

  • tofile()将数组中的数据以二进制格式写进文件
  • tofile()输出的数据不保存数组形状和元素类型等信息
  • fromfile()函数读回数据时需要用户指定元素类型,并对数组的形状进行适当的修改
import numpy as np# 随机生成12个数字并将其有一维转换成3*4的矩阵形式a = np.arange(12)print("一维数组:",a)a.shape = 3,4print("3*4的矩阵:",a)# 将数组中的数据以二进制格式写入到文件a.tofile("a.bin")# fromfile在读取numpy文件时需要自己指定数据格式,并且原格式并为保存b1 = np.fromfile("a.bin", dtype=np.float) # 按照float读取数据b2 = np.fromfile("a.bin", dtype=np.int) # 按照int读取数据b3 = np.fromfile("a.bin", dtype=np.int32) # 按照int32读取数据print("float格式b1:{},/nint格式b2:{},/nint32格式b3:{}".format(b1,b2,b3))b3.shape = 3,4print("b3:",b3)

 

2. save() 和 load(),savez()

  • NumPy专用的二进制格式保存数据,它们会自动处理元素类型和形状等信息
  • 如果想将多个数组保存到一个文件中,可以使用savez()
  • savez()的第一个参数是文件名,其后的参数都是需要保存的数组,也可以使用关键字参数为数组起名
  • 非关键字参数传递的数组会自动起名为arr_0、arr_1、...。
  • savez()输出的是一个扩展名为npz的压缩文件,其中每个文件都是一个save()保存的npy文件,文件名和数组名相同
  • load()自动识别npz文件,并且返回一个类似于字典的对象,可以通过数组名作为键获取数组的内容
import numpy as npa = np.arange(12)a.shape = 3,4# 将数据存储为npy/npznp.save("a.npy", a)np.save("a.npz", a)c = np.load("a.npy")print("save-load:",c)# 存储多个数组b1 = np.array([[6, 66, 666],[888, 88,8]])b2 = np.arange(0, 1.0, 0.1)c2 = np.sin(b2)np.savez("result.npz", b1,b2,sin_arry = c)c3 = np.load("result.npz") # npz文件时一个压缩文件print(c3)print("数组b1:{}/n数组b2:{}/n数组sin_arry:{}".format(c3["arr_0"],c3["arr_1"],c3["sin_arry"]))

 

 

3. savetxt() 和 loadtxt()

  • 读写1维和2维数组的文本文件
  • 可以用它们读写CSV格式的文本文件

 

用这种方式来对数据进行存储,方便深度学习中, 保存了训练集,验证集,测试集,还包括他们的标签,用这个方式存储起来,要啥加载啥,文件数量大大减少,也不会到处改文件名。算是get到了另外一种好的存储数据的方式

 

参考:https://www.cnblogs.com/wushaogui/p/9142019.html

https://www.cnblogs.com/dmir/p/5009075.html

 

大家可以关注我和我小伙伴的公众号~~~这里有我和我的小伙伴不定时的更新一些python技术资料哦!!大家也可以留言,讨论一下技术问题,希望大家多多支持,关注一下啦,谢谢大家啦~~

​​​​​​​

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/118862.html

相关文章

  • 一文带你斩杀PythonNumpy☀️Pandas全部操作【全网最详细】❗❗❗

    目录Numpy简介Numpy操作集合1、不同维度数据的表示1.1 一维数据的表示1.2 二维数据的表示1.3 三维数据的表示2、 为什么要使用Numpy2.1、Numpy的ndarray具有广播功能2.2 Numpy数组的性能比Python原生数据类型高3 ndarray的属性和基本操作3.1 ndarray的基本属性3.2 ndarray元素类型3.3 创建ndarray的方式3.4 ndarr...

    asoren 评论0 收藏0
  • python学习笔记 --- python中的list和numpy中的矩阵分析

    摘要:中的和中的矩阵分析由于之前在做的源码学习,并且将其的源码翻译成了的版本。在逛知乎里,我又发现了很多关于为什么这么快的讨论,很有意思。作者链接来源知乎著作权归作者所有。 python中的list和numpy中的矩阵分析 Author : Jasper Yang School : Bupt preface 由于之前在做GIbbsLDA++的源码学习,并且将其c++的源码翻译成了pyth...

    DobbyKim 评论0 收藏0
  • Python使用Numpy实现Kmeans算法

    摘要:如何确定最佳的值类别数本文选取手肘法手肘法对于每一个值,计算它的误差平方和其中是点的个数,是第个点,是对应的中心。随着聚类数的增大,样本划分会更加精细,每个簇的聚合程度会逐渐提高,那么误差平方和自然会逐渐变小。 目录 Kmeans聚类算法介绍: 1.聚类概念: 2.Kmeans算法: 定义...

    hankkin 评论0 收藏0
  • Python数据分析 - numpy

    摘要:前言以下简称是数据分析必不可少的第三方库,的出现一定程度上解决了运算性能不佳的问题,同时提供了更加精确的数据类型。因此,理解的数据类型对数据分析十分有帮助。一维数据由对等关系的有序或无序数据构成,采用线性方式组织,可以用数组表示。 前言 NUMPY(以下简称NP)是Python数据分析必不可少的第三方库,np的出现一定程度上解决了Python运算性能不佳的问题,同时提供了更加精确的数据...

    CHENGKANG 评论0 收藏0
  • 利用python进行识别相似图片(二)

    摘要:上一篇文章的地址利用进行识别相似图片一安装官网在进行下一步操作时,我们需要安装,本来安装的步骤跟平常安装其他模块一样,而然由于的历史原因用过都懂,弄得一点都不友好。 前言 和网上各种首先你要有一个女朋友的系列一样,想进行人脸判断,首先要有脸,只要能靠确定人脸的位置,那么进行两张人脸是否相似的操作便迎刃而解了。 所以本篇文章着重讲述如何利用openCV定位人脸。 上一篇文章的地址: 利用...

    余学文 评论0 收藏0

发表评论

0条评论

DrizzleX

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<