我需要将numpy数组保存到原始二进制文件,并根据同事的建议,我了解tostring
和tofile
应该做的大致相同。但是,当我跑
x=np.load('foo.npy')
(open('foo_1.dat', 'w')).write(x.T.tostring())
x.T.tofile('foo_2.dat')
np.all(np.fromfile('foo_1.dat') == np.fromfile('foo_2.dat'))
False
已退回。任何人都可以向我解释为什么会这样,或者如果我做错了什么,我可以更正代码以使我的最终产品等效?
编辑: 使用此方法,foo_1.dat和foo_2.dat具有相同的数据类型(float64),但是,形状不同(tostring = 38497230L,tofile = 38407680L)。 我需要为特定于程序的应用程序转换文件,而不是使用np.save,因为我特别需要.dat文件。
答案 0 :(得分:0)
我不知道这是否是问题,但文件应该以二进制>>模式打开:open('foo_1.dat','wb')
就是这样!谢谢!