Manipulating large arrays with HDF5