2012-04-23 35 views

Trả lời

34

h5py đã đọc tập tin trong mảng như NumPy, vì vậy chỉ cần:

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

Các [()] nghĩa để đọc toàn bộ mảng trong; nếu bạn không làm điều đó, nó không đọc toàn bộ dữ liệu nhưng thay vào đó cho phép bạn truy cập lười biếng vào các phần phụ (rất hữu ích khi mảng lớn nhưng bạn chỉ cần một phần nhỏ của nó).

+0

Cảm ơn rất nhiều Dougal.I đã sửa đổi mã thành: >>> f = h5py.File ('D: /! JODI/Ma Cao Gió/u_100m/20100101.hdf5', 'r') my_array = f [ Giá trị f.close() Một câu hỏi ngu ngốc khác là putarray out nằm trong một tệp? nơi tôi có thể tìm thấy các mảng đầu ra? cảm ơn bạn rất nhiều –

+0

Tôi không chắc chắn những gì bạn có nghĩa là bởi mảng đầu ra: 'my_array' từ trên cao? Bất kỳ thay đổi nào bạn thực hiện cho nó chỉ được lưu trữ trong bộ nhớ trừ khi bạn tự lưu chúng (vào một 'h5py.File' hoặc với một cái gì đó như' numpy.save'). – Dougal

+4

Đối với hậu thế: phương thức '.value' không còn hoạt động nữa. Sử dụng 'f ['array_name'] [()]' để thay thế. – Dougal

0

Đối với câu hỏi này, đó là cách quá mức cần thiết nhưng nếu bạn có rất nhiều thứ như thế này thì tôi có sử dụng gói SpacePy để làm cho việc này dễ dàng hơn không.

datamodel.fromHDF5() tài liệu Trả về từ điển các mảng được lưu trữ theo cách tương tự như cách xử lý dữ liệu của h5py.

Các vấn đề liên quan