将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.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)

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

【讨论】:

有些东西有changed 你现在需要bytes(memoryview(arr))

以上是关于将numpy数组存储在mysql中的主要内容,如果未能解决你的问题,请参考以下文章

如何将 numpy 数组存储在 Pandas 数据框的列中?

如何将 numpy 数组存储在 Pandas 数据框的列中?

在 ascii 文件中存储 numpy 数组的最佳方法

如何将 128 维面部编码存储在 numpy 多维数组中?

在一个 NumPy 数组中存储不同的数据类型?

如何将numpy数组存储为tfrecord?