成对距离python(一个基向量与许多其他基向量)

成对距离python(一个基向量与许多其他基向量),python,cosine-similarity,Python,Cosine Similarity,我有一个基向量(由1和0组成),我想找到到50000个其他向量(也由1和0组成)的余弦距离。我找到了很多方法来计算整个成对距离矩阵,但我对此不感兴趣。更确切地说,我只想得到我的基向量相对于其他向量的50000个距离(然后排序找到前5个)。实现这一点的最快方法是什么?矢量化操作与单独操作完全相同,只要小心使用轴。在这里,每一行中都有单独的“其他”向量: others = numpy.random.randint(0,2,(10,10)) base = numpy.random.randint(0,

我有一个基向量(由1和0组成),我想找到到50000个其他向量(也由1和0组成)的余弦距离。我找到了很多方法来计算整个成对距离矩阵,但我对此不感兴趣。更确切地说,我只想得到我的基向量相对于其他向量的50000个距离(然后排序找到前5个)。实现这一点的最快方法是什么?

矢量化操作与单独操作完全相同,只要小心使用轴。在这里,每一行中都有单独的“其他”向量:

others = numpy.random.randint(0,2,(10,10))
base = numpy.random.randint(0,2,(10,1))
d = numpy.inner(base.T, others) / (numpy.linalg.norm(others, axis=0) * numpy.linalg.norm(base))

那么你是如何计算这个矩阵的呢?你为什么不计算每个向量的值呢?那么10个向量的长度将有50000个。。。VS1矢量10长。当我尝试这一点时,我会遇到对齐/广泛的演员阵容问题。你能告诉我“其他人”是如何变长的吗?