2015-06-08 3 views
4

Мой случай использования прост, я выполнил какую-то операцию над изображением, а результирующий вектор функции - это numpy-объект формы rowX1000 (я хочу сказать, что номер строки может быть переменным, но номер столбца всегда 1000)store numpy array in mysql

Я хочу сохранить этот массив numpy в mysql. В этом массиве не должно быть никакой операции. Запрос будет простым, если имя изображения вернет весь вектор функции. так что есть ли способ, которым массив может быть сохранен (что-то вроде волшебного контейнера, который инкапсулирует массив, а затем кладет его на стол и извлекает, он извлекает волшебный контейнер и выталкивает массив)

Я хочу сделайте это в python. Если возможно, поддержка с кратким фрагментом кода о том, как помещать данные в базу данных mysql.

ответ

2

Вы можете использовать ndarray.dumps(), чтобы разложить его на строку, а затем записать в поле BLOB? Восстановление его с помощью numpy.loads()

1

Вы также можете сериализовать его с помощью numpy.getbuffer и numpy.frombuffer, чтобы сделать его независимым от рассола, как

bf = np.getbuffer(np.ones((2,3), dtype=np.float32)) 
# store and read ... 
np.frombuffer(bf, dtype=np.float32).reshape(2,3) 

только вы записать форму массива, а при необходимости ,

+0

Что-то было [изменено] (https://stackoverflow.com/questions/21821045/numpy-getbuffer-causes-attributeerror-module-object-has-no-attribute-getbuff) вам теперь нужны 'bytes (memoryview (arr)) ' – cardamom

+0

@cardamom спасибо, я не знал, что – dontloo