python - 如何加载存储在 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 中?
解决方案
我最终让它像这样工作:
obj = s3.Bucket('bucketname').Object('key')
obj = obj.get()['Body']
f = np.frombuffer(obj.read())
其中 s3 是 boto3.resource('s3') 对象
推荐阅读
- javascript - 如何从 github 中具有 HTTP 的 api 获取数据
- delphi - IOmniPipeline - 第二阶段未执行
- java - 在 Java 方法结束时获取“Process 'command 'C:/Program Files/Java/jdk-13.0.2/bin/java.exe'' 以非零退出值 1 结束”
- java - Gradle jpackage 创建无法运行的应用程序
- swift - 单选按钮图像不会迅速改变
- python - matplotlib.imshow() 复制图像
- java - 印地语文本验证哪个在按钮 + selenium 内
- python - 如何在 python 中选择数据框的某个部分/块?
- docker - 尝试使用 docker-compose up 时找不到包“github.com/streadway/amqp”
- regex - 使用正则表达式获取门牌号格式