我想将numpy float数组的内容保存为原始二进制文件,作为带符号的16位整数。我尝试使用ndarray.tofile完成此操作,但我无法找出正确的格式字符串。似乎文件以双格式保存,不管我如何选择格式字符串。我该怎么做呢? 感谢。
答案 0 :(得分:31)
我认为最简单的方法是首先将数组转换为int16,
array.astype('int16').tofile(filename)
答案 1 :(得分:8)
看一下struct模块,试试这个例子:
import struct
import numpy
f=open("myfile","wb")
mydata=numpy.random.random(10)
print(mydata)
myfmt='f'*len(mydata)
# You can use 'd' for double and < or > to force endinness
bin=struct.pack(myfmt,*mydata)
print(bin)
f.write(bin)
f.close()
答案 2 :(得分:0)
您可以使用scipy.io.savemat,它允许将名称和数组的字典保存到Matlab样式的文件中:
import scipy.io as sio
sio.savemat(filename, pydict)
这里的pydict可能是= {'name1':np.array1,'name2':np.array2,...}
要加载你需要的字典:
pydict = sio.loadmat(filename)