在经常性读取大量的数值文件时(比如深度学习训练数据),可以考虑现将数据存储为<代码> Numpy 代码>格式,然后直接使用Numpy去读取,速度相比为转化前快很多。
下面就常用的保存数据到二进制文件和保存数据到文本文件进行介绍:
numpy.save 引用>
保存一个数组到一个二进制的文件中,保存格式是.npy
参数介绍
numpy。保存(文件、arr allow_pickle=True, fix_imports=True)
引用>
文件:文件名/文件路径
加勒比海盗:要存储的数组
allow_pickle:布尔值,允许使用Python泡菜保存对象数组(可选参数,默认即可)
fix_imports:为了方便Pyhton2中读取Python3保存的数据(可选参数,默认即可)<强>使用强>
在在在进口numpy np #生成数据 在在在x=np.arange (10) 在在在x 数组([0,1,2,3,4,5,6,7,8,9)) #数据保存 在在在np.save (save_x, x) #读取保存的数据 在在在np.load (“save_x.npy”) 数组([0,1,2,3,4,5,6,7,8,9)) numpy.savez这个同样是保存数组到一个二进制的文件中,但是厉害的是,它可以保存多个数组到同一个文件中,保存格式是.npz,它其实就是多个前面<代码> np.save> 代码的保存的npy,再通过打包(未压缩)的方式把这些文件归到一个文件上,不行你去解压npz文件就知道了,里面是就是自己保存的多个npy。
参数介绍
numpy。知道我(文件、* args * * kwds)
引用>
文件:文件名/文件路径
* args:要存储的数组,可以写多个,如果没有给数组指定键,Numpy将默认从‘arr_0’,‘arr_1’的方式命名
kwds:(可选参数,默认即可)<强>使用强>
在在在进口numpy np #生成数据 在在在x=np.arange (10) 在在在x 数组([0,1,2,3,4,5,6,7,8,9)) 在在在y=np.sin (x) 在在在y 数组([0。,0.84147098,0.90929743,0.14112001,-0.7568025, -0.95892427,-0.2794155,0.6569866,0.98935825,0.41211849) #数据保存 在在在np.save (save_xy, x, y) #读取保存的数据 在在在npzfile=np.load (“save_xy.npz”) 在在在npzfile #是一个对象,无法读取 & lt; numpy.lib.npyio。在0 x7f63ce4c8860> NpzFile对象; #按照组数默认的关键进行访问 在在在npzfile (“arr_0”) 数组([0,1,2,3,4,5,6,7,8,9)) 在在在npzfile (“arr_1”) 数组([0。,0.84147098,0.90929743,0.14112001,-0.7568025, -0.95892427,-0.2794155,0.6569866,0.98935825,0.41211849])更加神奇的是,你可以不适用Numpy默认给数组的关键,而是自己给数组有意义的关键,这样就可以不用去猜测自己加载数据是否是自己需要的。
#数据保存 在在在np.savez (newsave_xy, x=x, y=y) #读取保存的数据 在在在npzfile=np.load (“newsave_xy.npz”) #按照保存时设定组数键进行访问 在在在npzfile [' x '] 数组([0,1,2,3,4,5,6,7,8,9)) 在在在npzfile [y] 数组([0。,0.84147098,0.90929743,0.14112001,-0.7568025, -0.95892427,-0.2794155,0.6569866,0.98935825,0.41211849])简直不能太爽,深度学习中,有时候你保存了训练集,验证集,测试集,还包括他们的标签,用这个方式存储起来,要啥加载啥,文件数量大大减少,也不会到处改文件名去。
numpy.savez_compressed 引用>
这个就是在前面<代码> numpy.savez> 代码的基础上加了压缩,前面我介绍时尤其注明numpy.savez是得到的文件打包,不压缩的。这个文件就是对文件进行打包时使用了压缩,可以理解为压缩前各npy的文件大小不变,使用该函数比前面的numpy.savez得到的npz文件更小。
注:函数所需参数和<代码> numpy.savez 代码>一致,用法完成一样。
numpy.savetxt 引用>
保存数组到文本文件上,可以直接打开查看文件里面的内容。
参数介绍
numpy。savetxt(帧,X, fmt=' %。18 e,分隔符=' ',换行符=' \ n ',头=?页脚="评论=' # ',编码=None)
帧:文件名/文件路径,如果文件后缀是. gz,文件将被自动保存为.gzip格式,np。loadtxt可以识别该格式Python Numpy中数据的常用保存与读取方法