python - dot routine for scipy.sparse matrices produces error -
i have csr matrix:
>> print type(tfidf) <class 'scipy.sparse.csr.csr_matrix'>
i want take dot product of 2 rows of csr matrix:
>> v1 = tfidf.getrow(1) >> v2 = tfidf.getrow(2) >> print type(v1) <class 'scipy.sparse.csr.csr_matrix'>
both v1
, v2
csr matrices. use dot
subroutine:
>> 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
they rows of same matrix, dimentions ought match:
>> print v1.shape (1, 4507) >> print v2.shape (1, 4507)
why dot
subroutine not work?
thanks.
to perform dot product of 2 row vectors, have transpose one. 1 transpose depends on result you're looking for.
import scipy sp = sp.matrix([1, 2, 3]) b = sp.matrix([4, 5, 6]) in [13]: a.dot(b.transpose()) out[13]: matrix([[32]])
versus
in [14]: a.transpose().dot(b) out[14]: matrix([[ 4, 5, 6], [ 8, 10, 12], [12, 15, 18]])
Comments
Post a Comment