2012-04-23 179 views

回答

34

h5py作爲numpy的陣列已經讀取的文件,所以只是:

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

[()]該裝置讀取整個陣列中;如果你不這樣做,它不會讀取整個數據,而是讓你懶地訪問子部分(當數組很大時非常有用,但只需要一小部分)。

+0

非常感謝Dougal.I修改了代碼:>>> f = h5py.File('D:/!JODI/Macau Wind/u_100m/20100101.hdf5','r') my_array = f [ 'u']。值 f.close() 另一個愚蠢的問題是put putray是在一個文件中?我在哪裏可以找到輸出數組?非常感謝你 – 2012-04-23 03:55:59

+0

我不確定你的輸出數組是什麼意思:'my_array'從上面?除非你自己保存(到'h5py.File'或類似'numpy.save'的東西),否則你所做的任何更改都只會存儲在內存中。 – Dougal 2012-04-23 07:13:50

+4

對於後人:'.value'方法不再有效。改用'f ['array_name'] [()]'。 – Dougal 2014-01-04 21:29:49

0

對於這個問題它是過度殺傷,但如果你有很多這樣的事情做我使用包SpacePy,使一些這更容易。

datamodel.fromHDF5() documentation這將返回一個數組字典,其存儲方式類似於h5py處理數據的方式。