2013-03-14 104 views
2

我知道我可以用genfromtxt命令读取一个numpy文件。它的工作原理是这样的:如何将几个数据库文件与numpy结合使用?

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

ax.boxplot(data) 

其真棒:

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

我可以在那里绘制的东西很容易。我现在想要做的是读取整个文件夹并将它们组合成一个巨大的数据集。如何将数据点添加到数据数据结构? 我该如何一次读取整个文件夹?

+0

是否所有的文件具有相同的格式? (相同的标题和列数?) – unutbu 2013-03-14 15:04:40

+0

难道你只是连接数组? – dmg 2013-03-14 15:05:52

+0

是的所有文件和标题相同 – tarrasch 2013-03-14 15:07:26

回答

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) 
+0

感谢您的优秀回答 – tarrasch 2013-03-15 07:49:52

相关问题