将文本文件分成多个numpy数组

时间:2014-04-05 23:52:01

标签: python arrays file-io numpy

我想将一个包含浮点数的简单单列文件放入多个numpy数组中,每个数组都使用相同数量的行创建。

因此,例如,如果文件有180行,我想创建3个numpy数组,一个包含第1-60行的数据,第二个从61到120,第三个从121到180。

我试图使用np.fromfile()函数,但这似乎无法响应文件指针(如,查找第1行,读取60行,然后搜索到61,读取60) ,...)。有谁知道如何有效地完成这项工作?

1 个答案:

答案 0 :(得分:2)

arr1, arr2, arr3 = np.loadtxt(path).reshape(3,-1)

只需将所有数据读入数组,然后将数组重新整形为3行。调用-1的{​​{1}}将被reshape替换为任何数字都有意义。例如,如果数组的长度为180,那么在重新整形时,该数组将具有60列。请注意,原始数组的长度必须完全可被3整除。

可替换地,

reshape

这更加健壮,因为arr1, arr2, arr3 = np.array_split(np.loadtxt(path), 3) 将数组拆分为3个部分,即使原始数组的长度不能被3整除。