2012-04-23 18 views

cevap

34

h5py zaten bu yüzden sadece, yanı numpy dizilerde dosyaları okur:

with h5py.File('the_filename', 'r') as f: 
    my_array = f['array_name'][()] 

[()] tamamını diziyi okumak anlamına gelir; Bunu yapmazsanız, tüm verileri okumaz, ancak bunun yerine alt parçalara tembel erişim sağlar (dizi çok büyük olduğunda çok kullanışlıdır, ancak yalnızca küçük bir parçasına ihtiyacınız vardır). Bu soru için

+0

Çok teşekkürler Dougal.I kodu şu şekilde değiştirdim: >>> f = h5py.File ('D: /! JODI/Macau Wind/u_100m/20100101.hdf5', 'r') my_array = f [ 'u'] değeri f.close() Başka bir aptal soru dışarı putarray bir dosyada mı? Çıkış dizisini nerede bulabilirim? çok teşekkür ederim –

+0

Çıkış dizisi ile ne demek istediğinizden emin değilim: 'my_array' yukarıdan? Yaptığınız her değişiklik sadece kendinizde saklanmadıkça ("h5py.File" veya "numpy.save" gibi bir şeyle) hafızada saklanır. – Dougal

+4

Gelecek için: '.value' yöntemi artık çalışmıyor. Bunun yerine 'f ['array_name'] [()]' kullanın. – Dougal

0

bu yol overkill ancak bunu için böyle bir çok şey varsa bu daha kolay bazılarını yapan bir paket SpacePy kullanın.

datamodel.fromHDF5() belgeler Bu nasıl h5py kolları verilere benzer şekilde depolanmış diziler sözlüğü döndürür.

İlgili konular