【发布时间】:2014-01-20 13:02:42
【问题描述】:
我正在研究歌曲推荐算法。我有一个值矩阵,我在 python(numPy)中得到余弦相似度。问题是每次我运行程序时,我都需要重新计算每个向量与其他每个向量的相似度。我想在本地存储计算结果,所以我不必每次都计算它。
我首先想到的是将它们存储在文本文件或数据库本身中。当然有更好的方法吗?
【问题讨论】:
标签: python numpy storage similarity
我正在研究歌曲推荐算法。我有一个值矩阵,我在 python(numPy)中得到余弦相似度。问题是每次我运行程序时,我都需要重新计算每个向量与其他每个向量的相似度。我想在本地存储计算结果,所以我不必每次都计算它。
我首先想到的是将它们存储在文本文件或数据库本身中。当然有更好的方法吗?
【问题讨论】:
标签: python numpy storage similarity
numpy.save 是你需要的:
numpy.save(file, arr)
Save an array to a binary file in NumPy .npy format.
【讨论】:
看看https://pypi.python.org/pypi/joblib
它完全按照你的意愿去做。
【讨论】:
很难回答你的问题。因为我不知道你的数据量和类型。 但我现在可以告诉你。 如果您正在为此考虑文件,则可能存在横向扩展问题,如果您将 python 服务器扩展到 # of box。所以你可能需要一个共享存储。在这种情况下,你必须考虑像 glusterFS 或 Hadoop 这样的共享存储文件系统。 (glusterFS 更容易)。但是访问时间会很差。 另一个选择是你可以考虑 Redis。它是基于内存的键值存储。它还支持文件持久性。 (因为它的特性与 memcahed 略有不同。) 最后的选择是你可以考虑支持可扩展性和性能的 NoSQL。但这始终取决于您的要求。
【讨论】: