Se você encontrar um problema que normalmente não pode salvar uma matriz numpy em um banco de dados MySQL , então este post é para você! A postagem original foi postada no meu blog .Eu escolhi um método de salvar para mim através do módulo pickle . Com ele, você pode salvar com segurança uma matriz numpy de qualquer dimensão no blob do banco de dados MySQL.Então, um exemplo de código: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()
Dessa maneira, você pode trocar matrizes numpy multidimensionais (e regulares) entre Python e MySQL de uma maneira absolutamente desimpedida. Se você ler a imagem usando cv2.imread da biblioteca OpenCV, por exemplo, o princípio permanecerá o mesmo - porque, de fato, é uma matriz multidimensional.Espero que isso ajude alguém a resolver um problema semelhante!