python – scipy.sparse矩阵的点例程产生错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – scipy.sparse矩阵的点例程产生错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1030字,纯文字阅读大概需要2分钟。
内容图文
我有一个CSR matrix:
>> print type(tfidf)
<class 'scipy.sparse.csr.csr_matrix'>
我想采取这个CSR matrix的两行的点积:
>> v1 = tfidf.getrow(1)
>> v2 = tfidf.getrow(2)
>> print type(v1)
<class 'scipy.sparse.csr.csr_matrix'>
v1和v2都是CSR矩阵.所以我使用点子程序:
>> 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子程序不起作用?
谢谢.
解决方法:
要执行两个行向量的点积,您必须转置一个.转置的那个取决于你正在寻找的结果.
import scipy as sp
a = sp.matrix([1, 2, 3])
b = sp.matrix([4, 5, 6])
In [13]: a.dot(b.transpose())
Out[13]: matrix([[32]])
与
In [14]: a.transpose().dot(b)
Out[14]:
matrix([[ 4, 5, 6],
[ 8, 10, 12],
[12, 15, 18]])
内容总结
以上是互联网集市为您收集整理的python – scipy.sparse矩阵的点例程产生错误全部内容,希望文章能够帮你解决python – scipy.sparse矩阵的点例程产生错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。