【发布时间】:2011-09-30 18:40:02
【问题描述】:
我有一组大型 ascii 数据文件,我需要将它们放入一个 numpy 数组中。大体上,我的意思是 390 行,其中每行是 60,000 个值(从 C++ 程序以高精度输出的双精度值),以空格分隔。
目前我正在使用以下(天真的)代码:
import numpy as np
data_array = np.genfromtxt('l_sim_s_data.txt')
但是,这需要 25 秒以上的时间才能运行。我怀疑这是由于在读取值之前没有预先分配 data_array。有没有办法告诉 genfromtxt 它正在制作的数组的大小(所以内存会被预先分配)?或者有没有人知道如何加快这个过程?
【问题讨论】:
-
不管它值多少钱,如果你给它一个
count参数,np.fromiter将预先分配。您可以利用它来制作一个np.loadtxt等价物来预分配数组。
标签: python arrays performance numpy memory-management