2016-07-18 15 views
1

print(np.load('/home/ugwz/fcn/vgg16.npy', encoding='latin1'))と出力の一部が以下のようになっています。これは読みにくいものですが、npyファイルの内容を出力しようとしています。npyファイルを読み込んで内容を調査することについて

enter image description here

その後、私は次のようにこの配列

print(np.load('/home/vgg16.npy', encoding='latin1').size) 
print(np.load('/home/vgg16.npy', encoding='latin1').shape) 
print(np.load('/home/vgg16.npy', encoding='latin1').ndim) 

のメタデータが出力される出力にしてみてください:

1 
() 
0 

npyファイルを読んで理解するための最良の方法は何?次のように

追加情報は以下のとおりです。

print(np.load('/home/vgg16.npy',encoding='latin1').dtype) 

object 

print(np.load('/home/vgg16.npy',encoding='latin1').item().type) 

AttributeError: 'dict' object has no attribute 'type' 


print(np.load('/home/vgg16.npy',encoding='latin1').item().shape) 

AttributeError: 'dict' object has no attribute 'shape' 
+0

どのようにしてアレイを作成しましたか?私の推測では、numpy配列のdictを第2引数として 'np.save'を呼び出したということです。 –

+0

はい、ロードされたnpyファイルがdictオブジェクトであるようです – user785099

答えて

2

画面の端に基づいて、私はスタートが{akey: [array(....ことを期待したい

....], dtype=float)]} 

を撃ちました。言い換えれば、辞書(1つ以上の項目)、リスト(少なくとも1つの項目の)、および1dの配列です。

あなたのサイズ、形状、ndimの値は、これが単一項目、0次元配列であることを示していますが、そのdtypeとは何ですか?私はdtype=objectを推測しています。

リストや辞書、オブジェクトdtype配列に1d配列が埋め込まれているようです。

私はencodingパラメータを使用していません。そのドキュメントは、次のとおりです。

エンコーディング:STR、オプション

Pythonの2つの文字列を読み込むときに使用するどのようなエンコーディング。 Python 2がPython 3でピクルされたファイルを生成したときにのみ役に立ちます。これにはオブジェクト配列を含む npy/npzファイルが含まれています。 'latin1'、 'ASCII'、および 'bytes'以外の値は数値 のデータを破損する可能性があるため、使用できません。デフォルト: 'ASCII'

これは、ピクルされたオブジェクトを含むこのファイルと一致しています。 picklingは、リスト、辞書などを保存するための一般的なPythonツールです。np.save/loadは、pickleオブジェクトを扱うことができますが、numpy配列はその特別なフォーマット、つまり配列pickleに保存されます。

このファイルをpickle(load?)で読み込むことができますか?

この負荷をallow_pickle=Falseで試してみると、dtype=objectアレイなどのピクルオブジェクトを処理しようとしているかどうかを確認できます。

しようとするために、別のステートメントにそれらのいずれかが0D配列から単一の要素を抽出する必要があり

data = load... 
print(data.dtype) # object? 
d1 = data[()]  # or 
d1 = data.item() 

です。次に、d1(タイプ、形状、dtypeなど)を特定しようとします。

+0

こんにちはhpaulj、私はdata.item()。shapeのような情報の出力を含む元の投稿を更新しました。 。 npyファイルはhttps://dl.dropboxusercontent.com/u/50333326/vgg16.npyからダウンロードされます – user785099

+0

dictオブジェクトであるため、キーリストを抽出するためにキーを使用しました。 – user785099

+0

これは辞書を含むオブジェクト配列です。 – hpaulj

関連する問題