我正在尝试使用 python 中的 csv 模块处理从 csv 文件中获得的数据。其中大约有 50 列和 401125 行。我使用以下代码块将该数据放入列表中
csv_file_object = csv.reader(open(r'some_path\Train.csv','rb'))
header = csv_file_object.next()
data = []
for row in csv_file_object:
data.append(row)
我可以使用 len(data) 获取此列表的长度,它返回 401125。我什至可以通过调用列表索引来获取每个单独的记录。但是当我尝试通过调用 np.size(data) (我将 numpy 作为 np 导入)来获取列表的大小时,我得到了以下堆栈跟踪。
MemoryError Traceback (最近一次调用最后一次) in () ----> 1 np.size(data)
C:\Python27\lib\site-packages\numpy\core\fromnumeric.pyc in size(a, axis) 2198 return a.size 2199 except AttributeError: -> 2200 return asarray(a).size 2201 else: 2202 try:
C:\Python27\lib\site-packages\numpy\core\numeric.pyc in asarray(a, dtype, order) 233 234 """ --> 235 return array(a, dtype, copy=False, order=order ) 236 237 def asanyarray(a, dtype=None, order=None):
内存错误:
我什至不能使用列表索引将该列表分成多个部分,或者将该列表转换为一个 numpy 数组。它给出了同样的内存错误。
我该如何处理这种大数据样本。有没有其他方法可以处理像这样的大型数据集。
我在 Windows 7 Professional 中使用 ipython notebook。