擅长:python、mysql、java
<p>{在kasvd中提出了一个好的解决方案。这个答案中的<code>iter_loadtxt()</code>解决方案是我的问题的完美解决方案:</p>
<pre><code>def iter_loadtxt(filename, delimiter=',', skiprows=0, dtype=float):
def iter_func():
with open(filename, 'r') as infile:
for _ in range(skiprows):
next(infile)
for line in infile:
line = line.rstrip().split(delimiter)
for item in line:
yield dtype(item)
iter_loadtxt.rowlength = len(line)
data = np.fromiter(iter_func(), dtype=dtype)
data = data.reshape((-1, iter_loadtxt.rowlength))
return data
</code></pre>
<p><code>genfromtxt()</code>占用这么多内存的原因是它在解析数据文件时没有将数据存储在高效的NumPy数组中,因此在NumPy解析我的大数据文件时内存使用过多。在</p>