SciPy を使用していくつかの統計を試みていますが、入力データセットは非常に大きく (~1.9GB)、dbf 形式です。ファイルが十分に大きいため、genfromtxt で配列を作成しようとすると、Numpy がエラー メッセージを返します。(私は3GBのRAMを持っていますが、win32を実行しています)。
すなわち:
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 データを参照するにはどうすればよいでしょうか? 説明で?
ご意見ありがとうございます。