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

Python 是否将numpy数组的元组保存到磁盘?,python,opencv,numpy,Python,Opencv,Numpy,当我运行函数从图像中提取numpy数组时,我得到一个numpy数组的元组作为(keypoint,descriptor) 有没有办法将这个元组打包在一起,这样我就可以将它们保存到文件中,或者将它们作为一行写入CSV?有几种方法可以做到这一点: 您可以使用Python,特别是: 根据,这可能有一些格式问题 如评论中所述,您可以使用。这可能是最好的方法: numpy.savetxt("file.csv",array,delimiter=",") 您还可以使用: 正如我在上面链接的文档中提到的,p

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


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

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

  • 您可以使用Python,特别是:

    根据,这可能有一些格式问题

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

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

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


    • 我建议使用以下方法,而不是使用
      pickle

      请注意,所有调用都与使用
      pickle
      时保持相同--只有
      import
      行更改

      cPickle
      pickle
      快得多,使用大型数组可以节省大量时间


      也就是说,在处理
      numpy
      数组时,使用
      numpy
      的保存函数(例如
      np.savetxt
      )是最好的选择。

      它们总是一维还是二维的?您可以直接将元组保存到文件中,例如,使用
      pickle
      。我相信它们都是二维
      np。savez
      可以将多个数组保存到ZIP存档中
      np.savetxt
      编写类似CSV的文本文件。它只是将其输入排列到一个2d数组中,然后(使用一个格式字符串)写入,每个文件行一行。没什么特别的。这是Python2还是Python3?Pickle似乎是存储numpy数组元组的最简单方法。谢谢
      csv.writer()
      接受文件对象,而不是文件名<使用open('file.csv','wb')作为outp:writer=csv.writer(outp)@MartijnPieters时,我注意到在检查Python 2和Python 3的差异时。我修正了。我想你不是想在
      pickle
      转储中使用
      .csv
      文件后缀。另外,您是否应该以二进制模式打开它(即,
      'wb'
      )?第一点您是对的(虽然扩展名并不重要,但是
      pickle.dump()
      不需要以二进制模式打开文件)。
      numpy.savetxt("file.csv",array,delimiter=",")
      
      import pickle
      pickle.dump(array,open("file","w"))
      
      import cPickle as pickle
      pickle.dump(array, open('file.p', 'wb'))