Я пытаюсь получить статистику с помощью SciPy, но мой набор входных данных довольно велик (~ 1,9 ГБ) и находится в формате dbf. Размер файла достаточно велик, и Numpy возвращает сообщение об ошибке, когда я пытаюсь создать массив с помощью genfromtxt. (У меня 3 ГБ оперативной памяти, но работает Win32).
i.e.:
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? В описании?
Спасибо за любые мысли, которые у вас есть!