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