3
我有一個基向量(由1和0組成),我想找到50000個其他向量(也包括1和0)的餘弦距離。我發現了很多方法來計算成對距離的整個矩陣,但我對此並不感興趣。相反,我只是感興趣的是獲取我的基矢量與其他矢量的50,000個距離(然後通過排序找到前5個)。什麼是我能達到這個目標的最快方法?成對距離python(一個基本向量相對於其他很多)
我有一個基向量(由1和0組成),我想找到50000個其他向量(也包括1和0)的餘弦距離。我發現了很多方法來計算成對距離的整個矩陣,但我對此並不感興趣。相反,我只是感興趣的是獲取我的基矢量與其他矢量的50,000個距離(然後通過排序找到前5個)。什麼是我能達到這個目標的最快方法?成對距離python(一個基本向量相對於其他很多)
矢量化操作與單獨操作完全相同,只要您對軸非常小心。在這裏,我在每一行都有單獨的「其他」向量:
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))
那麼你是如何計算矩陣的?你爲什麼不計算每個矢量? – MisterMiyagi