2
分別取兩個大小爲mxn和pxn的矩陣arr1,arr2。我試圖找到他們尊敬的行的餘弦距離作爲一個mxp矩陣。基本上我想要採用行的成對點積,然後除以每行的規範的外積。兩個矩陣之間的餘弦距離
import numpy as np
def cosine_distance(arr1, arr2):
numerator = np.dot(arr1, arr2.T)
denominator = np.outer(
np.sqrt(np.square(arr1).sum(1)),
np.sqrt(np.square(arr2).sum(1)))
return np.nan_to_num(np.divide(numerator, denominator))
我認爲這應該在[-1.0,1.0]被返回的條目一個m×n矩陣,但由於某種原因我得到的值指出,間隔的。我在想,我這些numpy函數中的一個正在做的事情不是我認爲的那樣。
如果p不同於n,那麼arr1和arr2的行不是相同的lentgh。在這種情況下,你如何計算內部產品? –
@ M.Massias對不起,原來是由n和n的m。他們應該有相同的列數。 –