h5py
모듈을 사용하여 HDF5 파일의 데이터에 액세스하기 위해 Python 슬라이스 객체를 사용하려고합니다. 이 예제를 함께 사용하여 numpy
배열과 함께 작동하지만, h5py
으로 작동하지 않는다는 것을 보여줍니다.h5py로 HDF5 파일을 읽을 때 파이썬 슬라이스 객체를 사용합니까?
import h5py
import numpy as np
slice_obj = [slice(None,3,None), slice(2,5,None)]
test_array = np.ones((3,5))
print test_array[0:3,2:5]
print test_array[slice_obj]
f = h5py.File("testing.hdf5","w")
f['data'] = test_array
f.close()
f = h5py.File("testing.hdf5","r")
test2 = f['data'][0:3,2:5]
print test2
test2 = f['data'][slice_obj]
print test2
f.close()
이 다음과 같은 출력 제공 :이 h5py
하지 만 가능한 경우
[[ 1. 1. 1.]
[ 1. 1. 1.]
[ 1. 1. 1.]]
[[ 1. 1. 1.]
[ 1. 1. 1.]
[ 1. 1. 1.]]
[[ 1. 1. 1.]
[ 1. 1. 1.]
[ 1. 1. 1.]]
Traceback (most recent call last):
File "slice.py", line 17, in <module>
test2 = f['data'][slice_obj]
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/h5py/_hl/dataset.py", line 439, in __getitem__
self.id.read(mspace, fspace, arr, mtype)
File "h5d.pyx", line 179, in h5py.h5d.DatasetID.read (h5py/h5d.c:2479)
File "_proxy.pyx", line 118, in h5py._proxy.dset_rw (h5py/_proxy.c:1300)
File "_proxy.pyx", line 84, in h5py._proxy.H5PY_H5Dread (h5py/_proxy.c:1051)
IOError: can't read data (Dataset: Read failed)
사람이 알고 있나요을? 그렇지 않다면 구체 예 대신 f['data'][0:3,2:5]
과 같이 슬라이스를 입력하는 대신 객체 또는 변수를 사용하여 h5py
으로 슬라이스 할 수있는 다른 방법이 있습니까?