CSV (Comma‐Separated Value, 逗号分隔值)
CSV是一种常见的文件格式,用来存储批量数据
np.savetxt(frame, array, fmt='%.18e', delimiter=None)
frame
: 文件、字符串或产生器,可以是.gz或.bz2的压缩文件array
: 存入文件的数组fmt
: 写入文件的格式,例如:%d %.2f %.18edelimiter
: 分割字符串,默认是任何空格示例:
In [42]: a = np.arange(99).reshape(9,11)
In [43]: np.savetxt('a.csv',a,fmt='%d',delimiter=',')
np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False)
frame
: 文件、字符串或产生器,可以是.gz或.bz2的压缩文件dtype
: 数据类型,可选delimiter
: 分割字符串,默认是任何空格unpack
: 如果True,读入属性将分别写入不同变量示例:
In [48]: np.loadtxt('a.csv',dtype=np.int,delimiter=',')
Out[48]:
array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21],
[22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32],
[33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43],
[44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54],
[55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65],
[66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76],
[77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87],
[88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98]])
np.savetxt() ,np.loadtxt()只能有效存取一维和二维数组
a.tofile(frame, sep='', format='%s')
frame
: 文件、字符串sep
: 数据分割字符串,如果是空串,写入文件为二进制format
: 写入数据的格式In [49]: a = np.arange(40).reshape((2,5,4))
In [50]: a.tofile('b.dat',sep=',',format='%d')
np.fromfile(frame, dtype=float, count=‐1, sep='')
frame
: 文件、字符串dtype
: 读取的数据类型count
: 读入元素个数,‐1表示读入整个文件sep
: 数据分割字符串,如果是空串,写入文件为二进制示例:
In [49]: a = np.arange(40).reshape((2,5,4))
In [50]: a.tofile('b.dat',sep=',',format='%d')
In [51]: np.fromfile('b.dat',dtype=np.int,sep=',').reshape((2,5,4))
Out[51]:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19]],
[[20, 21, 22, 23],
[24, 25, 26, 27],
[28, 29, 30, 31],
[32, 33, 34, 35],
[36, 37, 38, 39]]])
该方法需要读取时知道存入文件时数组的维度和元素类型
np.save(fname, array)
np.savez(fname, array)
fname
: 文件名,以.npy为扩展名,压缩扩展名为.npz
array
: 数组变量
np.load(fname)
fname
: 文件名,以.npy为扩展名,压缩扩展名为.npz
示例:
In [52]: a = np.arange(12).reshape((2,2,3))
In [54]: np.save('c.npy',a)
In [55]: np.load('c.npy')
Out[55]:
array([[[ 0, 1, 2],
[ 3, 4, 5]],
[[ 6, 7, 8],
[ 9, 10, 11]]])