从几个数据文件构造一维数组

时间:2014-01-10 10:26:56

标签: python arrays numpy

我正在尝试编写一个小的Python脚本来进行一些数据分析。我有几个数据文件,每个都是一列数据,我知道如何使用numpy.loadtxt在python中导入每个数据文件给我一个ndarray。但我无法弄清楚如何连接这些ndarrays,numpy.concatenate或numpy.append总是给我回错信息,即使我试图先将它们弄平。

您是否了解解决方案?

好的,因为您要求提供代码和数据详细信息。这是我的数据文件的样子:

1.4533423
1.3709900
1.7832323
...

只是一列浮点数,我使用以下方法导入单个文件没有问题:

data = numpy.loadtxt("data_filename")

我的代码尝试连接数组现在看起来像(在尝试numpy.concatenate和numpy.append之后我现在正在尝试numpy.insert):

data = numpy.zeros(0) #creating an empty first array that will be incremented by each file after
for filename in sys.argv[1:]:
    temp = numpy.loadtxt(filename)
    numpy.insert(data, numpy.arange(len(temp), temp))

我在运行脚本时传递文件名:

./my_script.py ALL_THE_DATAFILES

我得到的错误信息是:

TypeError: only length-1 arrays can be converted to Python scalars

1 个答案:

答案 0 :(得分:4)

numpy.concatenate肯定是一个有效的选择 - 没有样本数据和示例代码以及相应的错误消息我们无法帮助您进一步。

备选方案是numpy.r_numpy.s_

修改

此代码段:

import sys
import numpy as np
filenames = sys.argv[1:]
arrays = [np.loadtxt(filename) for filename in filenames]
final_array = np.concatenate(arrays, axis=0)