将numpy数组写入文件字节顺序问题?

时间:2013-09-01 05:15:47

标签: python numpy io

我正在尝试将numpy数组写入文件,但文件格式是每个值必须只包含表示64位浮点数所需的8个字节。

尽管我可以告诉,ndarray.tofile(array),array.dtype ='float64'没有实现这一点,所以我该如何快速完成?

1 个答案:

答案 0 :(得分:3)

tofile已经创建了您描述的二进制文件。你确定你正确地说它吗?如果你在代码中打开文件,你还记得以二进制模式打开它吗?以下是tofile按预期工作的示例:

>>> import numpy as np
>>> a = np.array([1, 2, 3], dtype='float64')
>>> a
array([ 1.,  2.,  3.])
>>> a.tofile('foo')

检查文件显示它是24字节长,并且内容对应于little-endian 64位IEEE 754浮点数:

$ hexdump -C foo   
00000000  00 00 00 00 00 00 f0 3f  00 00 00 00 00 00 00 40  |.......?.......@|
00000010  00 00 00 00 00 00 08 40                           |.......@|
00000018