Si encuentra un problema que normalmente no puede guardar una matriz numpy en una base de datos MySQL , ¡esta publicación es para usted! La publicación original fue publicada en mi blog .Elegí un método de guardar para mí a través del módulo pickle . Con él, puede guardar de forma segura una matriz numpy de cualquier dimensión en el blob de la base de datos MySQL.Entonces, un código de ejemplo:import mysql.connector
import pickle
import numpy as np
connection = mysql.connector.connect(host='localhost',
database='database',
user='root',
password='')
cursor = connection.cursor()
query = 'create table test(`column` blob);'
cursor.execute(query)
array = np.array([[1,2,3],[4,5,6]])
query = 'insert into test values(%s);'
db_array = pickle.dumps(array)
cursor.execute(query, [db_array ])
query = 'select * from test;'
cursor.execute(query)
res = cursor.fetchall()
res
pickle.loads(res[0][0])
array([[1, 2, 3],
[4, 5, 6]])
cursor.close()
connection.close()
De esta manera, puede intercambiar matrices numpy de matrices multidimensionales (y regulares) entre Python y MySQL de manera absolutamente perfecta. Si lee la imagen usando cv2.imread de la biblioteca OpenCV, por ejemplo, entonces el principio sigue siendo el mismo: después de todo, es, de hecho, una matriz multidimensional.¡Espero que esto ayude a alguien a resolver un problema similar!