【发布时间】:2014-10-21 08:31:38
【问题描述】:
我在 stackexchange 中广泛搜索了一个将巨大 (~2GB) .dat 文件加载到 numpy 数组中的巧妙解决方案,但没有找到合适的解决方案。到目前为止,我设法以非常快速的方式(
list=[]
f = open('myhugefile0')
for line in f:
list.append(line)
f.close()
使用 np.loadtxt 会冻结我的计算机并需要几分钟才能加载(约 10 分钟)。如何将文件作为数组打开,而不会出现似乎瓶颈 np.loadtxt 的分配问题?
编辑:
输入数据是一个浮点数 (200000,5181) 数组。一行示例:
2.27069e-15 2.40985e-15 2.22525e-15 2.1138e-15 1.92038e-15 1.54218e-15 1.30739e-15 1.09205e-15 8.53416e-16 7.715236e-16 7.5836 16 8.81664e-16 1.09204e-15 1.27305e-15 1.58008e-15
等等
谢谢
【问题讨论】:
-
你有64位python吗?你有多少内存?
-
是的,我有 Canopy 64 位 Enthought 发行版。我的内存是 8GB。我也在使用 Spyder,我也想知道这是否是个问题。
-
您能否向我们展示您的输入数据样本?至少有几行。
-
@cacosomoza 你试过
np.genfromtxt吗? -
您是否考虑过将数据文件重写为更适合相对大数据(fits 或 hdf5 左右)的数据格式,因为对于这些东西,有专门编写的库来处理(相对) 大数据