我得到了一个零和一个零的矩阵。我需要在矩阵中找到20行具有最高余弦指标的1 specific
行:
如果我有10行,而第5行称为specific
,我想选择它们之间的最高值:
cosine(1row,5row),cosine(2row,5row),...,cosine(8row,5row),cosine(9row,5row)
首先,我试着计算指标。 这不起作用:
A = ratings[:,100]
A = A.reshape(1,A.shape[0])
B = ratings.transpose()
similarity = -cosine(A,B)+1
A.shape = (1L, 71869L)
B.shape = (10000L, 71869L)
错误是:Input vector should be 1-D.
我想知道,如何在没有错误的情况下美观地实现这一点,但最重要的是 - 哪种解决方案最快?
在我看来,scipy
的帮助并没有实现最快的方式;
我们只需要在specific
行中取所有行,然后在所有其他行中查看这些索引。那些具有最高重合度的行将具有最高的矩阵。
有没有更快的方法?
答案 0 :(得分:0)
最快的方法是使用矩阵运算:something like np.multipy(A,B)