Biorąc pod uwagę nieprzetworzoną binarną reprezentację tablicy numpy
, jaki jest kompletny zestaw metadanych potrzebnych do jednoznacznego odtworzenia tablicy?numpy's tostring/fromstring --- co muszę określić, aby przywrócić tablicę
Na przykład
>>> np.fromstring(np.array([42]).tostring())
array([ 2.07507571e-322])
których należy się spodziewać (z perspektywy czasu, co najmniej): tutaj mam nie powiedział fromstring
oczekiwać ints, więc to idzie z domyślnym pływaka.
Ale wydaje mi się, że samo podanie numeru dtype=np.float64
może być wystarczające lub nie. Na przykład:
>>> a = np.array([42.])
>>> a.dtype
dtype('float64')
>>> a.dtype.byteorder
'='
która the docs tell me oznacza "natywną kolejność". Co oznacza, że będzie inaczej interpretowana na maszynach typu big-endian i little-endian - czy też brakuje mi czegoś prostego?
sys.byteorder daje endianness maszyny. Wygląda na to, że musisz też zapisać tę wartość. – unutbu
aby zapisać/załadować numpy array w sposób niezależny od platformy, możesz użyć funkcji [numpy.save/.load] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.load.html# numpy.load). – jfs
@ J.F.Sebastian: Dla pojedynczej tablicy, tak. W moim przypadku mam od 10 do 100 tysięcy tablic, które zrzucam do sqlite db (wraz z innymi, nieszablonowymi). Poza tym jestem po prostu ciekawa, jak to jest być niezależnym od platformy :-). –