Python 将numpy数组保存到二进制文件

Python 将numpy数组保存到二进制文件,python,arrays,numpy,Python,Arrays,Numpy,我将numpy数组保存到一个二进制文件中,作为np.save(“image\u mean.npy”,averaged\u mean)。当我打开文件时,观察到双字节文件的头为“NUMPY V{'descr':”V是头数据的长度(包括空格填充和终止换行符) 如 前6个字节是一个神奇的字符串:正好是“x93NUMPY” 下一个1字节是无符号字节:文件格式的主要版本号,例如x01 下一个1字节是无符号字节:文件格式的次要版本号,例如x00。注意:文件格式的版本与numpy软件包的版本无关 接下来的

我将numpy数组保存到一个二进制文件中,作为
np.save(“image\u mean.npy”,averaged\u mean)
。当我打开文件时,观察到双字节文件的头为
“NUMPY V{'descr':”
V
是头数据的长度(包括空格填充和终止换行符)

  • 前6个字节是一个神奇的字符串:正好是“x93NUMPY”

  • 下一个1字节是无符号字节:文件格式的主要版本号,例如x01

  • 下一个1字节是无符号字节:文件格式的次要版本号,例如x00。注意:文件格式的版本与numpy软件包的版本无关

  • 接下来的2个字节形成一个小的endian unsigned short int int:报头数据报头的长度。

  • 下一个头字节构成描述数组格式的头数据。它是一个ASCII字符串,包含字典的Python文本表达式。它以换行('n')结尾,并用空格('x20')填充为了对齐,使魔术字符串+4+标题的总长度可以被16整除。

  • 示例中标题数据的长度(包括单个换行符)这使得
    magic\u string+4+HEADER\u LEN
    相等
    81
    ,不能被16整除,因此下一个可整除的数字是96,因此HEADER数据被15个空格填充,使总长度等于
    96
    。这使得HEADER长度为-
    86
    ,即
    V
    >

    >>> chr(86)
    'V'
    

    为什么要
    F
    ?您认为文件格式会发生什么变化?我认为
    V
    指的是我自己的版本。文档是否在.npy上?如果要将numpy数组保存到“原始”二进制文件,请不要使用
    np.save
    numpy.save
    将文件保存在“npy”中格式,它不是一个原始的二进制文件(因此是头文件)。相反,它有一个头文件,等等。取而代之的是使用
    your_array.tofile(filename)
    。要将顺序更改为fortran排序的数组,可以使用
    your_array.ravel(order='F').tofile(filename)
    。有关.npy格式的文档现在位于scipy.org