首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在mongodb中保存numpy数组

在mongodb中保存numpy数组
EN

Stack Overflow用户
提问于 2011-06-16 13:43:11
回答 6查看 21.3K关注 0票数 29

我有两个MongoDB文档,其中一个字段最好用矩阵(numpy数组)表示。我想将此文档保存为MongoDB,该如何操作?

代码语言:javascript
复制
{
'name' : 'subject1',
'image_name' : 'blah/foo.png',
'feature1' : np.array(...)
}
EN

回答 6

Stack Overflow用户

发布于 2011-06-17 01:55:52

对于一维numpy数组,您可以使用列表:

代码语言:javascript
复制
# serialize 1D array x
record['feature1'] = x.tolist()

# deserialize 1D array x
x = np.fromiter( record['feature1'] )

对于多维数据,我认为您将需要使用pickle和pymongo.binary.Binary:

代码语言:javascript
复制
# serialize 2D array y
record['feature2'] = pymongo.binary.Binary( pickle.dumps( y, protocol=2) ) )

# deserialize 2D array y
y = pickle.loads( record['feature2'] )
票数 29
EN

Stack Overflow用户

发布于 2014-03-05 18:14:10

代码pymongo.binary.Binary(...)对我不起作用,也许我们需要像@tcaswell建议的那样使用bson。

无论如何,这里是多维numpy数组的一种解决方案

代码语言:javascript
复制
>>from bson.binary import Binary
>>import pickle
# convert numpy array to Binary, store record in mongodb
>>record['feature2'] = Binary(pickle.dumps(npArray, protocol=2), subtype=128 )
# get record from mongodb, convert Binary to numpy array
>> npArray = pickle.loads(record['feature2'])

话虽如此,功劳归功于

MongoWrapper

使用他们写的代码。

票数 7
EN

Stack Overflow用户

发布于 2015-07-28 15:58:56

我们已经构建了一个用于存储数字数据(Pandas、numpy等)的开源库。在MongoDB中:

https://github.com/manahl/arctic

最棒的是,它非常容易使用,相当快,并且支持数据版本控制,多个数据库等等。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6367589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档