擅长:python、mysql、java
<p>所以,问题是:</p>
<p><code>all_lines = in_file.readlines()</code>将所有行读入内存可能不是最好的方法。。。但是如果你要这样做,那么绝对不要这样做:<code>all_lines.remove(line)</code>,因为这是一个O(N)运算,你在循环中做,给你二次复杂度。你知道吗</p>
<p>我怀疑您只需做一些具有以下效果的事情,就可以获得巨大的性能改进:</p>
<pre><code>idx = np.arange(total, dtype=np.int32)
idx = np.random.choice(idx, size=new_len, replace=False)
for i in idx:
outfile.write(all_lines[i])
</code></pre>