2017-06-22 49 views
0

我有一個由三列組成的mongodb集合,我只想將整個集合讀入m x n Numpy數組,其中m是記錄數(文檔),而n是3.我不需要存儲這樣的密鑰:將整個mongodb集合導入一個Numpy數組而不循環

my_data = list(collection.find()) 

是不是我正在尋找。

我想要得到的結果是,我會得到,如果,而不是一個MongoDB的集合一樣,我有一個CSV文件,我寫道:

my_data = genfromtxt('file.csv', delimiter=',') 
+0

你的文件是什麼樣的?你目前的實施有一個特定的問題嗎? – KDecker

+0

然後將my_data解析爲所需的任何類型或格式。它只是一個JSON。 –

+0

我知道了,但是我可以在一條指令中得到我所需要的內容,而無需循環,因爲我可以使用genfromtxt進行操作嗎? – Eugenio

回答

0

使用map()用光標對象:

my_data = list(map(lambda x: list(x.values()), {"_id": False})) 

import numpy as np 

result = np.array(my_data) 
+0

問題是沒有篩選ObjectId(這是我不得不做的事情,你是對的),但我想填充陣列沒有循環的事實 – Eugenio

+0

你可以使用'map':'my_data = list( map(lambda x:list(x.values()),collection.find()))返回列表,你可以傳遞給'np.array()'。 – dasdachs

+0

完美,謝謝。如果編輯添加最終解決方案的答案,應該是: my_data = np.array(list(map(lambda x:list(x.values()),collection.find({},{「_ id」:False })))) 我會接受它 – Eugenio

相關問題