蓝盟IT小贴士,来喽!
展开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 .形状=3,4
print('3*4矩阵: ',a )
#将数组中的数据以二进制格式写入文件
a.tofile('a.bin ' )
要导入#fromfilenumpy文件,必须指定自己的数据格式并将其保存为原始格式
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 .形状=3,4
print('b3: ',b3 )
2. save ( )和load()savez ( )
NumPy专用的二进制格式存储自动处理信息(如元素类型和形状)的数据
使用savez ( )将多个数组存储在一个文件中
savez ( )的第一个参数是文件名,后面的参数是要保存的数组,也可以使用关键字参数命名数组
传递非关键字参数的数组将自动命名为arr_0、arr_1。
savez ( )输出扩展名为npz的压缩文件。 每个文件都是用save ( )保存的npy文件,文件名和数组名相同
load ( )会自动识别npz档案,并传回类似字典的物件,以阵列名称作为索引键来撷取阵列内容
import numpy as np
a=np.arange(12 )
a .形状=3,4
将#数据另存为npy/npz
np.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文件,压缩文件
打印( C3 )
print ( '阵列b1:{}\n阵列b2:{}\n阵列sin _ arry : { }.' format ( C3 [ ' arr _0' )、c3['arr_1']'、c3['sin_arry'] )
3. savetxt ( )和loadtxt ( )
读写一维和二维数组的文本文件
可以读写CSV格式的文本文件
以这种方式存储数据,方便深度学习,可以存储培训集、验证集、测试集以及它们的标签,以此方式加载什么,文件数量大大减少,并且不会更改文件名。 还有另一种保存数据的方法