如何将几个数据库文件与numpy结合起来?

时间:2013-03-14 14:53:41

标签: python numpy matplotlib

我知道我可以使用genfromtxt命令读取numpy文件。它的工作原理如下:

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

我可以轻松地在那里绘制内容:

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

ax.boxplot(data)

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

1 个答案:

答案 0 :(得分: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)