将NumPy数组存储到MySQL中

9
我的用例很简单,我在图像上执行了某种操作,结果特征向量是一个形状为行X1000的numpy对象(我的意思是行数可以变化,但列数始终为1000)。
我想将这个numpy数组存储在MySQL中。不需要对此数组执行任何操作。查询很简单,给定一个图像名称返回整个特征向量。那么有没有办法存储该数组(类似于一个魔法容器,封装该数组,然后将其放在表格上,在检索时检索魔法容器并弹出数组)?
我想在Python中实现这一点。如果可能的话,请支持一下如何将数据放入MySQL数据库的简短代码片段。
2个回答

8
您可以使用ndarray.dumps()将其转换为字符串,然后将其写入BLOB字段中。通过numpy.loads()方法恢复它。

2
ndarray.dumps() 返回序列化为字节的 ndarray。那么,你如何将它格式化为 SQL 查询? - Dimitris Poulopoulos

3
你可以使用numpy.getbuffernumpy.frombuffer来序列化它,使其与pickle无关,示例代码如下:
bf = np.getbuffer(np.ones((2,3), dtype=np.float32))
# store and read ...
np.frombuffer(bf, dtype=np.float32).reshape(2,3)

如果需要,您只需记录数组的形状即可。


现在有些变化了,你需要使用bytes(memoryview(arr))。详情请参考此链接 - cardamom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接