我正在尝试使用SciPy进行一些统计,但我的输入数据集非常大(~1.9GB)并且采用dbf格式 . 该文件足够大,当我尝试使用genfromtxt创建数组时,Numpy会返回错误消息 . (我有3GB内存,但运行win32) .
即:
Traceback (most recent call last):
File "", line 1, in
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数据呢?在描述中?
感谢您的任何想法!