3

我有一个在 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 问题之间解决这个问题。不过,我还没有尝试过泡菜。我觉得这很简单,但是在花了几个小时之后我觉得很傻。

4

1 回答 1

3

如您所料,您想按如下方式腌制数组:

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())

这是将任何 Python 对象序列化并存储在 PiCloud 存储桶中的通用方法。我还建议您将 csv 文件存储在前缀下,以使其井井有条 [1]。

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

于 2013-07-17T19:05:03.413 回答