2012-04-23 178 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处理数据的方式。