我有一个CSR矩阵:
>> print type(tfidf)
<class 'scipy.sparse.csr.csr_matrix'>
我想要对这个CSR矩阵的两行进行点积:
>> v1 = tfidf.getrow(1)
>> v2 = tfidf.getrow(2)
>> print type(v1)
<class 'scipy.sparse.csr.csr_matrix'>
v1
和v2
都是CSR矩阵。因此,我使用dot
子程序:
>> print v1.dot(v2)
Traceback (most recent call last):
File "cosine.py", line 10, in <module>
print v1.dot(v2)
File "/usr/lib/python2.7/dist-packages/scipy/sparse/base.py", line 211, in dot
return self * other
File "/usr/lib/python2.7/dist-packages/scipy/sparse/base.py", line 246, in __mul__
raise ValueError('dimension mismatch')
ValueError: dimension mismatch
它们是同一个矩阵的行,因此它们的维度应该匹配:
>> print v1.shape
(1, 4507)
>> print v2.shape
(1, 4507)
为什么“dot”子程序不起作用?
谢谢。
1xn
与1xn
点乘,必须是1xn
与nx1
点乘。那么v1.dot(v2.transpose())
怎么样? - Justin