2

我知道我可以使用 genfromtxt 命令读取带有 numpy 的文件。它是这样工作的:

data = numpy.genfromtxt('bmrbtmp',unpack=True,names=True,dtype=None)

我可以通过以下方式轻松地绘制其中的内容:

ax.plot(data['field'],data['field2'], linestyle=" ",color="red")

或者

ax.boxplot(data)

它真棒。我现在真正想做的是读取整个文件夹的文件并将它们组合成一个巨大的数据集。如何将数据点添加到数据数据结构中?以及如何一次读取整个文件夹?

4

1 回答 1

2

要访问目录中的所有文件,请使用os.walk

要“垂直”堆叠两个结构化 numpy 数组,请使用np.vstack

要保存结果,请使用np.savetxt以文本格式保存,或使用np.save以(较小的)二进制格式保存数组。


import os
import numpy as np

result = None
for root, dirs, files in os.walk('.', topdown = True):
    for filename in files:
        with open(os.path.join(root, filename), 'r') as f:
            data = np.genfromtxt(f, unpack=True, names=True, dtype=None)
        if result is None:
            result = data
        else:
            result = np.vstack((result, data))

print(result[:10]) # print first 10 lines
np.save('/tmp/outfile.npy', result)
于 2013-03-14T15:18:47.260 回答