Wenn Sie auf ein Problem stoßen, bei dem Sie normalerweise kein Numpy-Array in einer MySQL-Datenbank speichern können , ist dieser Beitrag genau das Richtige für Sie! Der ursprüngliche Beitrag wurde auf meinem Blog veröffentlicht .Ich habe mir über das Pickle- Modul eine Speichermethode ausgesucht . Damit können Sie sicher ein numpy-Array beliebiger Dimension im Blob der MySQL-Datenbank speichern.Ein Beispielcode: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()
Auf diese Weise können Sie numpy mehrdimensionale (und reguläre) numpy Arrays zwischen Python und MySQL absolut ungehindert austauschen. Wenn Sie das Bild beispielsweise mit cv2.imread aus der OpenCV-Bibliothek lesen, bleibt das Prinzip dasselbe - da es sich tatsächlich um ein mehrdimensionales Array handelt.Ich hoffe das hilft jemandem ein ähnliches Problem zu lösen!