SciPy를 사용하여 일부 통계를 시도하고 있지만 입력 데이터 세트가 매우 커서 (~ 1.9GB) dbf 형식입니다. genfromtxt로 배열을 만들려고 할 때 Numpy가 오류 메시지를 반환 할 정도로 파일 크기가 큽니다. (3GB RAM을 가지고 있지만 win32를 실행 중입니다.) 다른 게시물에서"큰 텍스트 파일을 PyTables 또는 PyHDF를 통해 hdf5로 읽어 들이고 있습니까?
즉 :
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
ind_sum = numpy.genfromtxt(r"W:\RACER_Analyses\Terrestrial_Heterogeneity\IND_SUM.dbf", dtype = (int, int, int, float, float, int), names = True, usecols = (5))
File "C:\Python26\ArcGIS10.0\lib\site-packages\numpy\lib\npyio.py", line 1335, in genfromtxt
for (i, line) in enumerate(itertools.chain([first_line, ], fhd)):
MemoryError
, 나는 PyTables에 의해 제공되는 청크 배열이 유용 할 수 있다고 볼 수 있지만 내 문제는 처음에이 데이터를 읽고 있습니다. 즉, PyTables 또는 PyHDF를 사용하면 원하는 HDF5 출력을 쉽게 만들 수 있지만 먼저 데이터를 배열로 가져 오려면 어떻게해야합니까?
예를 들어:
import numpy, scipy, tables
h5file = tables.openFile(r"W:\RACER_Analyses\Terrestrial_Heterogeneity\HET_IND_SUM2.h5", mode = "w", title = "Diversity Index Results")
group = h5.createGroup("/", "IND_SUM", "Aggregated Index Values"`)
을 한 후 나는 테이블 또는 배열을 만들 수 있습니다 하나,하지만 어떻게 내가 원래 DBF 데이터를 다시 참조합니까? 설명에서?
의견을 보내 주셔서 감사합니다.
입력 파일이 1.9GB 인 경우 32 비트 OS에서 mmap을 수행하지 못할 수 있으며 변환을 위해 python 코드로 주소 공간을 남겨 둘 수 있습니다. – user57368
많은 감사. 내가 제안한 메모리 매핑 경로를 사용해 보겠습니다. 시간을내어 의견을 나누어 주셔서 감사합니다. 내가 32 비트 OS에 의해 여전히 제한되어 있다고 염려하지만, 내가 이것을 얻었는지 여부를 알려줄 것이다. 나는 그것이 어떻게되는지 보게 될 것입니다. 다시 한 번 감사드립니다. – jsnider