【发布时间】:2015-09-11 11:02:47
【问题描述】:
假设我有 Numpy 数组 p 和一个 Scipy 稀疏矩阵 q 这样
>>> p.shape
(10,)
>>> q.shape
(10,100)
我想做 p 和 q 的点积。当我尝试使用 numpy 时,我得到以下信息:
>>> np.dot(p,q)
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist packages/IPython/core/interactiveshell.py", line 2883, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-96-8260c6752ee5>", line 1, in <module>
np.dot(p,q)
ValueError: Cannot find a common data type.
我在Scipy documentation 看到了
从 NumPy 1.7 开始,np.dot 不知道稀疏矩阵,因此 使用它会导致意外的结果或错误。这 应该先得到对应的稠密矩阵
但这违背了我使用稀疏矩阵的目的。太棒了,我如何在稀疏矩阵和一维 numpy 数组(numpy 矩阵,我对任何一个都开放)之间做点积而不失去矩阵的稀疏性?
我正在使用 Numpy 1.8.2 和 Scipy 0.15.1。
【问题讨论】:
标签: python numpy scipy sparse-matrix dot-product