用于创建原始二进制文件的tostring与tofile

时间:2017-04-26 11:51:40

标签: python numpy

我需要将numpy数组保存到原始二进制文件,并根据同事的建议,我了解tostringtofile应该做的大致相同。但是,当我跑

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文件。

1 个答案:

答案 0 :(得分:0)

  
    

我不知道这是否是问题,但文件应该以二进制>>模式打开:open('foo_1.dat','wb')

  

就是这样!谢谢!