Iva*_*dez 6 python numpy amazon-s3
无论如何要在 numpy 中加载/读取外部文件(即 AWS S3)?我在 S3 中存储了几个 npy 文件。我试图通过 S3 预签名 url 访问它们,但似乎 numpy.load 方法或 np.genfromtxt 都无法读取它们。
我不想将文件保存在本地文件系统上,然后将它们加载到 numpy 上。
任何的想法?
Hru*_*mal 10
使用s3fs
import numpy as np
from s3fs.core import S3FileSystem
s3 = S3FileSystem()
key = 'your_file.npy'
bucket = 'your_bucket'
df = np.load(s3.open('{}/{}'.format(bucket, key)))
Run Code Online (Sandbox Code Playgroud)
您可能必须allow_pickle=True根据要读取的文件设置。
小智 6
我比较了 s3fs 和 io.BytesIO 从 s3 加载 28G npz 文件的情况。s3fs 需要 30 分钟,而 io 需要 12 分钟。
obj = s3_session.resource("s3").Object(bucket, key)
with io.BytesIO(obj.get()["Body"].read()) as f:
f.seek(0) # rewind the file
X, y = np.load(f).values()
Run Code Online (Sandbox Code Playgroud)
s3fs = S3FileSystem()
with s3fs.open(f"s3://{bucket}/{key}") as s3file:
X, y = np.load(s3file).values()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5187 次 |
| 最近记录: |