1
h5py의 HDF 데이터 세트는 numpy 배열 기능의 하위 세트를 구현하지만 실제로 액세스하는 데이터 만 메모리로 읽어 들일 수 있다는 이점이 있습니다. 그러므로 가능한 한 오랫동안 데이터 세트로 작업하고 부족한 기능이 필요할 때만 배열로 변환하려고합니다. 이를 위해 처음에는 데이터 셋을 포함하는 래퍼 클래스를 정의하려고 시도했지만 이름 오류를 포착하고 데이터 셋을 배열로 변환합니다. 내 현재의 구현은 다음과 같습니다파이썬에서 전달 속성 조회
class DArr:
def __init__(self, dset):
self.arr = dset
def __getitem__(self, args):
try:
return self.arr.__getitem__(args)
except:
self.arr = np.array(self.arr)
return self.arr.__getitem__(args)
def __getattr__(self, name):
try:
return self.arr.__getattr__(name)
except:
self.arr = np.array(self.arr)
return self.arr.__getattr__(name)
그러나 이것은이 분명히 내가 앞으로 할 수있는 __getattr__
을 가지고 있지 않는 한 self.arr
가하는 numpy.array
될 때 실패합니다. 이런 종류의 포워딩을 수행하는 올바른 방법은 무엇입니까? 목표는 DArr
이 사용자의 관점에서 numpy.array
처럼 동작해야한다는 것입니다.
감사 :
__getitem__
를 들어는
[]
색인 연산자를 사용 – amaurea