給定一個numpy
數組的原始二進制表示,明確還原數組所需的全部元數據集是什麼?numpy's tostring/fromstring ---我需要指定什麼來恢復數組
例如,
>>> np.fromstring(np.array([42]).tostring())
array([ 2.07507571e-322])
這是可以預期的(一個事後看來,至少):在這裏我還沒有告訴fromstring
期待整數,如此這般用默認的浮動。
但是,在我看來,只是指定dtype=np.float64
或類似可能會或可能不足夠。例如,
>>> a = np.array([42.])
>>> a.dtype
dtype('float64')
>>> a.dtype.byteorder
'='
其中the docs tell me表示「本機順序」。意思是說,它在大端和小端機器上會有不同的解釋---或者我錯過了一些簡單的東西?
sys.byteorder給機器的字節序。看起來你也必須保存這個值。 – unutbu
以獨立於平臺的方式保存/加載numpy數組,您可以使用[numpy.save/.load functions](http://docs.scipy.org/doc/numpy/reference/generated/numpy.load.html# numpy.load)。 – jfs
@ J.F.Sebastian:對於單個數組,是的。在我的情況下,我有10到10萬個數組,我將其轉儲到sqlite數據庫(以及其他非數組內容)。此外,我只是好奇於什麼需要平臺無關:-)。 –