2012-04-23 3 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() 또 다른 바보 같은 질문은 출력 배열이 파일에 있다는 것입니까? 출력 배열을 어디에서 찾을 수 있습니까? –

+0

출력 배열이 무슨 의미인지 모르겠습니다 : 위의'my_array'? 변경 한 내용은 저장하지 않는 한 메모리에 저장됩니다 ('h5py.File' 또는'numpy.save'와 같은 것). – Dougal

+4

후자의 경우 :'.value' 메소드가 더 이상 작동하지 않습니다. 'f [ 'array_name'] [()]'를 대신 사용하십시오. – Dougal

0

이 질문을하는 방법은 과잉이지만이 일을 많이하는 경우에는 좀 더 쉽게 만드는 패키지 SpacePy을 사용하십시오.

datamodel.fromHDF5() documentation h5py가 데이터를 처리하는 방법과 비슷한 방법으로 저장된 사전을 반환합니다.