我在s3中保存了很多.npy(numpy)和.json文件,我需要下载并加载这些文件。
对于json文件,我正在使用以下代码下载文件并加载到字典中:
imageView.setSupportBackgroundTintList(ContextCompat.getColorStateList(this, R.color.colorBlue));
这样我就避免将.json文件写入磁盘并读取它。
现在我想对.npy文件做同样的事情,相同的是什么?
目前我正在下载文件,保存到磁盘上的临时文件并使用obj = s3.Object(bucket, key)
response = obj.get()
body = response['Body'].read().decode('utf-8')
data = json.loads(body)
加载,但如果可能的话,我希望避免这种情况。
答案 0 :(得分:1)
正确的回答应该是:
numpy_image = np.fromstring(s3_object.get()['Body'].read(), np.uint8)
如果你想从中获取图像,你可以像下面的例子一样使用 cv2:
image = cv2.imdecode(numpy_image, cv2.IMREAD_COLOR)
答案 1 :(得分:0)
关注https://stackoverflow.com/a/28196540/3509999:
obj = s3.Object(bucket, key)
with io.BytesIO(obj.get()["Body"].read()) as f:
# rewind the file
f.seek(0)
arr = np.load(f)