如何在 PostgreSQL 数据库中存储 NumPy 数组?

How to store NumPy arrays in PostgreSQL database?

目前,我正在创建 .npz 压缩文件来存储大型 NumPy 数组。因此,每次我需要从文件加载数组时,由于这是一个频繁的过程,我都在考虑将 NumPy 数组存储在数据库中。我正在使用 PostgreSQL 数据库。

您可以使用 bytea 列来执行此操作(它可以存储任意二进制文件)。您可以使用 pickle.dumps 将您的 numpy 数组转换为二进制字符串,然后根据需要插入到 postgres 中。然后,您可以转到 select 该数据并使用 pickle.loads 取回您的数组。这是对类似问题的回答:

根据数组的大小,您可能需要考虑某种 blob 存储,例如 amazon S3。

如果您经常访问此数据并且这是一个生产环境,您可能需要考虑保留此数据 in-memory。如果您的数组足够大,您不能将它在内存中保存太久,那么您应该考虑您的应用程序是否允许分批或缓冲区流式传输数据。