将numpy数组存储在mysql中
Posted
技术标签:
【中文标题】将numpy数组存储在mysql中【英文标题】:store numpy array in mysql 【发布时间】:2015-08-23 03:37:04 【问题描述】:我的用例很简单,我对图像进行了某种操作,得到的特征向量是一个形状为 rowX1000 的 numpy 对象(我的意思是行号可以是可变的,但列号始终是 1000 )
我想将这个 numpy 数组存储在 mysql 中。不对这个数组执行任何操作。给定图像名称返回整个特征向量,查询将很简单。那么有什么方法可以存储数组(就像一个封装数组的魔术容器,然后将其放在桌子上并在检索时检索魔术容器并弹出数组)
我想在 python 中执行此操作。如果可能的话,使用简短的代码片段来支持如何将数据放入 mysql 数据库中。
【问题讨论】:
【参考方案1】:您可以使用 ndarray.dumps() 将其腌制为字符串,然后将其写入 BLOB 字段?使用 numpy.loads() 恢复它
【讨论】:
ndarray.dumbs()
返回序列化为字节的ndarray
。那么,如何将其格式化为 SQL 查询呢?【参考方案2】:
您也可以使用numpy.getbuffer
和numpy.frombuffer
对其进行序列化,使其独立于pickle,例如
bf = np.getbuffer(np.ones((2,3), dtype=np.float32))
# store and read ...
np.frombuffer(bf, dtype=np.float32).reshape(2,3)
如果需要,您只需记录数组的形状。
【讨论】:
有些东西有changed 你现在需要bytes(memoryview(arr))
以上是关于将numpy数组存储在mysql中的主要内容,如果未能解决你的问题,请参考以下文章
如何将 numpy 数组存储在 Pandas 数据框的列中?