一维,二维的存取
存一维,二维数据
np.savetxt(fname,array,fmt=’%.18e’,delimiter=None);
fname 表示的是存取文件的名称
array 表示的是要存入文件的数据的数组名称
fmt 表示写入文件的格式,例如:%d %.2f %.18e
delimiter 表示的是分割各个数据的字符串,默认是空格
#e.g:
a = np.arange(100).reshape(4,25);
np.savetxt('a.csv',a,fmt='%d',delimiter=',');
b = np.loadtxt('a.csv',dtype=np.int,delimiter=',');
取一维,二维数据
v=np.loadtxt(fname,dtype=np.float,delimiter=None,unpack=False);
fname 表示的是读入文件的名称
dtype 数据类型,可选
delimiter 表示的是分割各个数据的字符串,默认是空格
unpack 如果为True,读入属性将分别写入不同的变量
#e.g:
a = np.arange(100).reshape(2,5,10);
a.tofile('a.dat',sep=',' ,format='%.f');
b = np.fromfile('a.dat',sep=',', dtype='int32',count=10).reshape(10,1,1);
注意: savetxt,loadtxt只能读写一维,二维数组。
多维数据的存取
多维数据存
a.tofile(fname,sep=’’,format=’%s’)
fname 表示的是存取文件的名称
sep 表示的是数据分割字符串,如果是空串,写入文件为二进制文件
format 写入数据的格式
多维数据取
np.fromfile(fname,dtype=float,count=-1,sep=’’)
fname 表示的是读入文件的名称
dtype 读取的数据类型
count 读入元素个数,-1表示读入整个文件数据
sep 数据分割字符串,如果是空串,写入为二进制
注意: tofile虽然可以存入多维数组,但是写入的文件其实是转换成了一维数组
如果用fromfile读取多维数组,fromfile只能读取相当于一个[]中的内容
所以该方法需要读取时知道存入文件时数组的维度和元素类型
a.tofile 和 np.fromfile 需要配合使用
可以通过元数据文件来存取额外信息(即再新建一个文件来存储这方面的信息)
NumPy的便捷文件存取
np.save(fname,array) 或np.savez(fname,array)
fname 文件名,以.npy为扩展名,压缩扩展名为.npz
array 数组变量
x=np.load(fname)
fname 文件名,以.npy为扩展名,压缩扩展名为.npz
save存取的文件前面是存取数组的信息,包括维度等,通过这些信息来实现读取的时候将数组维度直接还原
# e.g:
a = np.arange(100).reshape(2,5,10);
np.save('a.npy',a);
b = np.load('a.npy');