gpt4 book ai didi

python - 一维 numpy 数组和 scipy 稀疏矩阵之间的点积

转载 作者:太空宇宙 更新时间:2023-11-04 07:37:40 28 4
gpt4 key购买 nike

假设我有 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 中看到那个

As of NumPy 1.7, np.dot is not aware of sparse matrices, therefore using it will result on unexpected results or errors. The corresponding dense matrix should be obtained first instead

但这违背了我使用稀疏矩阵的目的。 Soooo,我如何在稀疏矩阵和一维 numpy 数组(numpy 矩阵,我对两者都持开放态度)之间做点积而不丢失矩阵的稀疏性?

我正在使用 Numpy 1.8.2 和 Scipy 0.15.1。

最佳答案

使用*:

p * q

请注意,* 对稀疏矩阵使用类似矩阵的语义而不是类似数组的语义,因此它计算矩阵乘积而不是广播乘积。

关于python - 一维 numpy 数组和 scipy 稀疏矩阵之间的点积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31040188/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com