기존 pytables 테이블에 큰 데이터 세트 (> 30Gb)를 추가하려고합니다. 테이블은 N 개의 열이고 데이터 세트는 N-1 개의 열입니다. 하나의 열은 다른 N-1 열을 알고 난 후에 계산됩니다.대용량의 데이터를 테이블 (HDF5) 데이터베이스에 추가하는 경우 database.numcols! = newdata.numcols?
데이터베이스에 추가하기 전에 데이터 세트의 청크를 메모리에 읽기 위해 numpy.fromfile()
을 사용하고 있습니다. 이상적으로는 데이터베이스에 데이터를 저장 한 다음 마지막 열을 계산하고 Table.modifyColumn()
을 사용하여 작업을 완료하는 것이 좋습니다.
테이블에 numpy.zeros((len(new_data), N))
을 추가 한 다음, Table.modifyColumns()
을 사용하여 새 데이터를 채우는 것으로 생각했지만 누군가가 필요한 각 청크에 대해 거대한 빈 데이터 배열을 생성하지 않는 좋은 방법을 알고 있습니다. 추가.
혼란스러워. 왜 제로 열을 추가하지 않는 것이 좋을까요? np.zeros (len (new_data, 1)) –
나는 혼란 스럽다. 너에게 0의 열을 덧붙이라고 제안하는거야? – Phil
코드 샘플을 제공해 주시겠습니까? 나는 이제 당신이 hdf5 파일과 PyTables에서 데이터를 읽기 위해 numpy를 사용하여 (다른?) hdf5 파일을 조작한다는 것을 이해한다고 생각하십니까? 왜 테이블에 삽입하기 전에 numpy .concatenate 배열을 확장하지 않을까요? 나는 네 목표가 무엇인지 모르겠다. –