从文件创建Numpy数组 - 预分配?

3 投票
1 回答
837 浏览
提问于 2025-04-16 21:03

我有一组很大的ASCII数据文件,想把它们放进一个numpy数组里。这里的“很大”是指有390行,每行有60,000个值(这些值是从C++程序中高精度输出的双精度值),用空格分开。

目前我在用以下这段(简单的)代码:

import numpy as np
data_array = np.genfromtxt('l_sim_s_data.txt')

不过,这段代码运行起来要花超过25秒。我怀疑这是因为在读取数据之前没有预先分配好数据数组的大小。有没有办法告诉genfromtxt它要创建的数组的大小(这样内存就可以预先分配)?或者有没有人知道怎么能加快这个过程?

1 个回答

3

你试过用 np.loadtxt 吗?

(genfromtxt 是一个更高级的文件加载工具,它可以处理一些特殊情况,比如缺失值和格式转换。)

撰写回答