2016-11-15 9 views
1

numpyで外部ファイル(AWS S3)を読み込んだり読み込んだりしていますか? S3にはいくつかのnpyファイルが格納されています。私はS3のpresigned URLを介してそれらにアクセスしようとしましたが、numpy.loadメソッドまたはnp.genfromtxtはそれらを読み取ることができないようです。pythonのS3からnpyファイルをロードする

ファイルをローカルファイルシステムに保存してnumpyにロードしたくないです。

+0

あなたはすべてのWebプロトコルの仕事をして、いくつかの余分な層を必要とします! NumpyのIOはおそらくファイルベースのIOのためだけに設計されています。 Python3では、 ''インポート要求を試みることができます。 import BytesIO; request = requests.get(url); np.load(BytesIO(request.content)) '' '。 – sascha

+0

もちろん、私のスニペットはS3リンクが認証の必要なしに公開されていると仮定しています。私はそれが事実かどうかわからない。そうでない場合は、ファイルにアクセスするためにこの認証を行うライブラリが必要になります。 – sascha

+0

'requests'を使ってファイルを読むことができますか? –

答えて

0

botoとStringIOを使用して成功しました。 botoを使用してS3に接続し、バケツを入手します。

import numpy as np 
    from StringIO import StringIO 
    key=bucket.get_key('YOUR_KEY') 
    data_string=StringIO(key.get_contents_as_string()) 
    data = np.load(data_string) 

私はそれが最も効率的な方法だかわからないが、それは公共のURLを必要としない。そして、numpyのに次のコードを含むファイルを読み込みます。

乾杯、もちろん マイケル

関連する問題