2014-01-20 32 views
2

我正在研究歌曲的reccommender算法。我有一個值的矩陣,我得到了python(numPy)的餘弦相似性。問題是,每次運行程序時,我都需要重新計算每個矢量與其他矢量的相似度。我想在本地存儲計算結果,所以我不必每次計算它。本地長期存儲數據

我想到的第一件事就是將它們存儲在文本文件或數據庫本身中。當然,更好的方法呢?

+1

看一看[pickle module](http://docs.python.org/2/library/pickle.html) – aIKid

回答

4

numpy.save是你所需要的:

numpy.save(file, arr) 
Save an array to a binary file in NumPy .npy format. 
+0

我想要一個42,000 x 42000的結果集。你會將它們保存在42,000個單獨的陣列中嗎? – TheBaywatchKid

+1

[numpy.savez](http://docs.scipy.org/doc/numpy/reference/generated/numpy.savez.html)允許您以非壓縮的.npz格式將多個數組保存到單個文件中。 – Vincent

-1

這是很難回答你的問題。因爲我不知道你的數據量和類型。 但我現在可以告訴你。 如果你正在考慮這個文件,它可能會有擴展問題,如果你將python服務器擴展到#的方框。所以你可能需要共享存儲。在這種情況下,你必須考慮像glusterFS或Hadoop這樣的共享存儲文件系統。 (glusterFS更多eaisier)。但訪問時間會很差。 另一種選擇是你可以考慮Redis。它是基於內存的密鑰&價值商店。它也支持文件持久性。 (因爲它的特點與memcahed有些不同)。 最後的選擇是你可以考慮NoSQL,它可以支持可伸縮性和性能。但它總是取決於你的要求。