Python 将numpy数组保存到二进制文件
我将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软件包的版本无关 接下来的
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