首页 > 解决方案 > 如何加载存储在 S3 中的 numpy 字节数组而不将其写入磁盘?

问题描述

我在 S3 中有一个 numpy 数组,我想将它加载到我的 python 脚本中。该数组是通过以下方式使用 boto3 上传的:

s3.put_object(
     Body=np.array(array).tobytes(),
     Bucket='bucketname',
     Key='filename'
)

我知道它是一个形状为 (1, 356) 的数组,并且 dtype=float。

如何在不手动下载文件然后将其加载到 numpy 的情况下将这个项目从 S3 获取到我的 python 脚本中?

即使我手动下载文件,我将如何将其加载到 numpy 中?

标签: pythonnumpyamazon-s3

解决方案


我最终让它像这样工作:

obj = s3.Bucket('bucketname').Object('key')
obj = obj.get()['Body']

f = np.frombuffer(obj.read())

其中 s3 是 boto3.resource('s3') 对象


推荐阅读