Теперь я пытаюсь выяснить, как я могу восстановить массив numpy из данных base64. Этот вопрос и ответ предполагают, что это возможно: Чтение массивов numpy вне Python, но пример не указан.
Используя приведенный ниже код, как я могу получить массив Numpy из данных base64, если я знаю dtype и форму массива?
import base64
import numpy as np
t = np.arange(25, dtype=np.float64)
s = base64.b64encode(t)
r = base64.decodestring(s)
q = ?????
Я хочу, чтобы оператор python устанавливал q как массив numpy dtype float64, поэтому результатом является массив, идентичный t. Это то, что закодированные и декодированные массивы выглядят так:
>>> t = np.arange(25,dtype=np.float64)
>>> t
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.,
11., 12., 13., 14., 15., 16., 17., 18., 19., 20., 21.,
22., 23., 24.])
>>> s=base64.b64encode(t)
>>> s
'AAAAAAAAAAAAAAAAAADwPwAAAAAAAABAAAAAAAAACEAAAAAAAAAQQAAAAAAAABRAAAAAAAAAGEAAAAAAAAAcQAAAAAAAACBAAAAAAAAAIkAAAAAAAAAkQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAqQAAAAAAAACxAAAAAAAAALkAAAAAAAAAwQAAAAAAAADFAAAAAAAAAMkAAAAAAAAAzQAAAAAAAADRAAAAAAAAANUAAAAAAAAA2QAAAAAAAADdAAAAAAAAAOEA='
>>> r = base64.decodestring(s)
>>> r
'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\[email protected]\x00\x00\x00\x00\x00\x00\[email protected]\x00\x00\x00\x00\x00\x00\[email protected]\x00\x00\x00\x00\x00\x00\[email protected]\x00\x00\x00\x00\x00\x00\[email protected]\x00\x00\x00\x00\x00\x00\[email protected]\x00\x00\x00\x00\x00\x00 @\x00\x00\x00\x00\x00\x00"@\x00\x00\x00\x00\x00\[email protected]\x00\x00\x00\x00\x00\x00&@\x00\x00\x00\x00\x00\x00(@\x00\x00\x00\x00\x00\x00*@\x00\x00\x00\x00\x00\x00,@\x00\x00\x00\x00\x00\[email protected]\x00\x00\x00\x00\x00\[email protected]\x00\x00\x00\x00\x00\[email protected]\x00\x00\x00\x00\x00\[email protected]\x00\x00\x00\x00\x00\[email protected]\x00\x00\x00\x00\x00\[email protected]\x00\x00\x00\x00\x00\[email protected]\x00\x00\x00\x00\x00\[email protected]\x00\x00\x00\x00\x00\[email protected]\x00\x00\x00\x00\x00\[email protected]'
>>> q = np.array( ????
Причина, по которой я спрашиваю, заключается в том, что я работаю над проектом, в котором я хотел бы хранить много массивов Numpy в базе данных MySQL в приложении, основанном на django.
Используя этот фрагмент django, я могу хранить данные base64 в текстовом поле: http://djangosnippets.org/snippets/1669/
Я хочу записать массивы в базу данных как base64 вместо преобразования массивов в строку unicode.
Спасибо за вашу помощь.