我正在构建一个新函数来从文件导入数据。我正在构建我自己的,这样它就可以使用与loadtxt()相同的通用函数调用,并处理数据列的标题。问题出在数据文件的大小上,上一次我处理的是1.3Gig。为了尽量减少ram的使用,我计划将文件加载到一个变量中,将其分解成一个数组“f”,然后一次处理50000行。通过这种方式,我可以将这50000条处理过的行放入一个数组中,然后用原始文件从变量中删除它们。(一次处理一行然后删除一行太长,因此有了50000次的想法。)
对于我正在使用的处理:import numpy as np
def processing(arr, delimiter, dtype):
return map(dtype, arr.split(delimiter))
df = open(file, 'r')
f = df.readlines()
df.close()
fn = vectorize(processing, otypes=[float])
fn的工作条件是我不向它传递数组。考虑:
^{pr2}$
这个:fn(a, ',', int)
回报率"ValueError: setting an array element with a sequence."
我的其他功能正常。变量没有这个工作,但对大文件来说真的很慢。我有一个简短的一次性脚本,它在不到4分钟的时间内加载了文件,所以这就是目标(loadtxt()占用了~16Gig的ram并使我的机器崩溃)。我想尝试这种矢量化的想法,但如果有更好的方法来打破数据,同时尽量减少内存使用,我是开放的。在