2015-05-08 45 views
0

我將數據存儲在大小爲(4320,2160)的數組中,從長度爲4320 * 2160的列表重新整形。當我用numpy的tofile方法以二進制格式保存文件,然後打開文件時,我注意到數組的長度是雙倍的。我如何獲得數組的原始值?我假設它與endianness有關,但我不熟悉處理它。Python數組大小在以二進制格式保存後加倍

cdom=np.reshape(cdom, (4320,2160), order='F') # array of float values 
len(cdom) # 4320*2160 
cdom.tofile(filename) 

arr = np.fromfile(filename, dtype=np.float32) 
len(arr) # double the size of cdom: 2*4320*2160 
+0

什麼是mycdom?重塑的結果? – NBartley

+0

@NathanBartley是的,它是重塑的結果。我應該具體說明這一點。 – wxcoder

+3

我懷疑cdom的類型是'np.float64',並且你正在讀取'np.float32'的二進制文件,所以長度加倍(而且這些值實際上是垃圾)。 –

回答

2

看起來cdom的類型爲np.float64,而你正在閱讀的二進制文件np.float32,所以長度加倍(和值是有效的垃圾)。