将numpy数组的元组保存到磁盘?

时间:2015-03-18 01:15:46

标签: python opencv numpy

当我运行compute函数从图像中提取它们时,我得到一个numpy数组的元组(keypoint, descriptor)

有没有办法将这个元组打包在一起,以便我可以将它们保存到文件中,或者将它们作为一行写入CSV?

2 个答案:

答案 0 :(得分:2)

有几种方法可以做到这一点:

  • 您可以使用Python csv module,特别是writer objects

    import csv
    writer = csv.writer(open("file.csv","w"))
    for row in array:
         writer.writerow(str(row))
    

    根据this question,可能存在一些格式问题。

  • 如评论中所述,您可以使用numpy.savetxt()。这可能是最好的方法:

    numpy.savetxt("file.csv",array,delimiter=",")
    
  • 您还可以使用pickle module

    import pickle
    pickle.dump(array,open("file","w"))
    

    正如我在上面链接的文档中所述,pickle.load()不应用于加载不受信任的数据。

答案 1 :(得分:1)

我建议使用cPickle

,而不是使用pickle
import cPickle as pickle
pickle.dump(array, open('file.p', 'wb'))

请注意,您的所有通话都与使用pickle时相同 - 只有import行更改。

cPicklepickle快得多,使用大型数组可以为您节省大量时间。

也就是说,当您处理numpy数组时,使用numpy的保存功能 - 例如np.savetxt - 是您最好的选择。