通常、numpy配列をMySQLデータベースに保存できない問題が発生した場合は、この投稿が役立ちます!元の投稿は私のブログに投稿されました。私はピクルスモジュールを使用して自分用の保存方法を選択しました。これを使用すると、MySQLデータベースのblobに任意の次元の数の多い配列を安全に保存できます。したがって、コード例: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()
このようにして、PythonとMySQLの間で、numpy多次元(および通常の)numpy配列をまったく妨げられない方法で交換できます。たとえば、OpenCVライブラリからcv2.imreadを使用して画像を読み取る場合、実際には多次元配列であるため、原理は同じです。これが誰かが同様の問題を解決するのに役立つことを願っています!