一维及二维数据的存取
CSV(Comma-Separated Value,逗号分隔值)
CSV是一种常见的文件格式,用来存储批量数据。
将数据写入CSV文件:
np.savetxt(file,array,fmt='%.18',delimiter=None)
说明:
file:文件,字符串或产生器,可以是.gz或.bz2的压缩文件
array:存入文件的数组
fmt:写入文件的格式
delimiter:分割字符串,默认是任何空格
例:
a = np.arrage(100).reshape(5,20)
np. savetxt('a.csv',a,fmt='%d',delimiter=',')
将会得到一个文件名为a.csv,使用文本文档打开如下
如果由%d改为%.1f则会按照格式存入
将数据读取CSV文件:
np.loadtxt(file,dtype=np.float,delimiter=None,unpack=False)
说明:
file:文件,字符串或产生器,可以是.gz或.bz2的压缩文件
dtype:可选,如果选择int,则生成的数据(array)全部使用int类型,如果选择float则新生成的数据包含小数
delimiter同上
unpack:如果为Ture,读入属性将分别写入不同变量
CSV的局限性:
CSV只能存储一维和二维数组
多维数据的存取
存数据(因为是二进制无法认为读取):
a.tofile(file,sep='',format='%s')
说明:
sep:数据分割字符串,如果是空串,写入文件为二进制
format:写入数据的格式
如果按照规则生成文件并使用文本文档打开将会发现是二进制文件
读数据(与tofile搭配使用):
np.fromfile(file,dtype=float,count=-1,sep='')
说明:
count:表示读取元素的个数,-1表示读取整个文件
以上的多维数据存储方法读取时需要知道存入文件时数组的维度和元素类型
为了方便,一般将维度数据存入另一个文件
例:
import numpy as np
a = np.arange(100).reshape(5,10,2)
a.tofile('b.dat',sep=",",format='%d')
c = np.fromfile('b.dat',dtype=np.int,sep=",")
print(c)#输出的只是一维的一组数据
c = np.fromfile("b.dat",dtype=np.int,sep=",").reshape(5,10,2)
print(c)#输出的是刚刚那组一维数据的多维构成
便捷文件存取
np.save(file,arr)
np.load(file)
操作的是.npy类型的文件