我試圖瞭解如何使用csr_matrix
API及其cosine
功能,並且我遇到了dimension mismatch
問題。稀疏矩陣之間的餘弦距離
我有以下兩個(3,3)的矩陣:
a = scipy.sparse.csr_matrix(np.reshape(np.arange(9), (3,3)))
b = scipy.sparse.csr_matrix(np.reshape(np.arange(9)*2+5, (3,3)))
我想從a[0]
和b[0]
一拉cosine(a[0], b[0])
計算餘弦相似度(或餘弦距離)。
如果我打印出來的a[0], b[0]
的尺寸,我得到:
(<1x3 sparse matrix of type '<class 'numpy.int64'>'
with 2 stored elements in Compressed Sparse Row format>,
<1x3 sparse matrix of type '<class 'numpy.int64'>'
with 3 stored elements in Compressed Sparse Row format>)
因此,他們的尺寸相匹配。但嘗試cosine(a[0], b[0])
結果在ValueError: dimension mismatch
。任何想法爲什麼?
可能您需要轉置其中一個向量 – incBrain
@incBrain:轉置不會改變產生的錯誤。 – David
你確定你正在使用正確的功能嗎? http://docs.scipy.org/doc/scipy-0.16.0/reference/generated/scipy.sparse.csr_matrix.html 有趣的是,該文檔頁面沒有餘弦函數,即使存在一個用於正弦和切線等。但格式是'罪'和'譚',讓我覺得你想用'cos()'而不是'cosine()'。你在輸入什麼?有cos和餘弦函數遍佈numpy/scipy和數學軟件包 – kingledion