Với một đại diện nhị phân thô của một mảng numpy
, bộ hoàn chỉnh siêu dữ liệu cần thiết để khôi phục lại mảng một cách rõ ràng là gì?của numpy tostring/fromstring --- những gì tôi cần phải xác định để khôi phục mảng
Ví dụ,
>>> np.fromstring(np.array([42]).tostring())
array([ 2.07507571e-322])
mà là để được mong đợi (với một nhận thức muộn màng, ít nhất): ở đây tôi chưa nói với fromstring
mong đợi ints, vì vậy nó đi với phao mặc định.
Nhưng có vẻ như với tôi rằng chỉ cần chỉ định dtype=np.float64
hoặc tương tự có thể hoặc có thể không đủ. Ví dụ:
>>> a = np.array([42.])
>>> a.dtype
dtype('float64')
>>> a.dtype.byteorder
'='
mà the docs tell me có nghĩa là 'thứ tự gốc'. Có nghĩa là, nó sẽ được giải thích khác nhau trên một máy tính lớn và nhỏ - hoặc tôi thiếu một cái gì đó đơn giản?
sys.byteorder cung cấp cho các endianness của máy. Có vẻ như bạn cũng phải lưu giá trị này. – unutbu
để lưu/tải mảng numpy theo cách độc lập với nền tảng mà bạn có thể sử dụng [numpy.save/.load functions] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.load.html# numpy.load). – jfs
@ J.F.Sebastian: Đối với một mảng duy nhất, có. Trong trường hợp của tôi, tôi đã 10 đến 100 nghìn mảng, mà tôi đang bán phá giá cho một db sqlite (cùng với các công cụ khác không phải mảng). Bên cạnh đó, tôi chỉ tò mò như những gì nó cần để được nền tảng độc lập :-). –