如何将Numpy数组输出到Picloud的文件对象

时间:2013-07-17 18:13:10

标签: python numpy cloud

我有一个矩阵分解过程,我正在picloud上运行。输出是一组numpy数组(ndarray)。

现在,我想将它保存到我的桶中,但我无法以正确的方式进行操作。我们假设要保存的数组是P.

我试过了:

cloud.bucket.putf(P,'p.csv')

但是返回了一个错误:“IOError:文件对象不可搜索。无法传输”。

我试过

numpy.ndarray.tofile(P,f, sep=",", format="%s") #outputing the array to a file object f
cloud.bucket.putf(f,'p.csv') #saving the file object f in the bucket.

我尝试了其他一些东西,包括使用numpy.savetext(就像我在本地运行它一样)但是我无法在picloud文档和stackexchange问​​题之间解决这个问题。不过,我还没有尝试过泡菜。我觉得这很简单,但在这花了几个小时之后,我感觉很傻。

1 个答案:

答案 0 :(得分:2)

正如您所猜测的那样,您希望按如下方式挑选数组:

import cloud
import cPickle as pickle

# to write
cloud.bucket.putf(pickle.dumps(P), 'p.csv')

# to read
obj = pickle.loads(cloud.bucket.getf('p.csv').read())

这是在PiCloud Bucket中序列化和存储任何Python对象的一般方法。我还建议您将csv文件存储在前缀下以保持其有序[1]。

[1] http://docs.picloud.com/bucket.html#namespacing-with-prefix