1

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

据我所知,ndarray.tofile(array), array.dtype = 'float64' 没有做到这一点,那么我怎样才能快速做到这一点?

4

1 回答 1

4

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
于 2013-09-01T06:23:17.047 回答