numpy 数组的存取常用的有两种方式:
注意: 一定要注意 tofile 和 fromfile 成对使用,不可与 load 和 save 混用,否则数组长度不一致。
- numpy.tofile() 和 numpy.fromfile():
保存为二进制格式,但是不保存数组形状和数据类型, 即都压缩为一维的数组,需要自己记录数据的形状,读取的时候再reshape.
>>> import numpy
>>> a = numpy.ones((2,4))
>>> a
array([[ 1., 1., 1., 1.],
[ 1., 1., 1., 1.]])
>>> a.tofile('a.npy')
>>> b = numpy.fromfile('a.npy')
>>> b.shape
(8,)
- numpy.save() 和 numpy.load():
保存为二进制格式,保存数组形状和数据类型, 不需要进行reshape
>>> numpy.save('b.npy', a)
>>> b = numpy.load('b.npy')
>>> b.shape
(2, 4)
如果此时用 fromfile() 打开的话,那么会多10个元素头信息。
>>> b = numpy.fromfile('b.npy')
>>> b.shape
(18,)
end