Meg*_*wal 2 python numpy multidimensional-array dot-product valueerror
我使用numpy创建了两个数组:
import numpy as np
a = np.array([[1, 5, 7], [6, 8, 9]])
b = np.array([[1, 8, 8], [5, 8, 0], [8, 9, 0]])
np.dot(a, b)
Run Code Online (Sandbox Code Playgroud)
现在,在执行时np.dot(a, b)我收到错误:
ValueError:操作数无法与形状(2,3)(3,3)一起广播.
通常,如果a的最后一个维度与b的倒数第二个维度的大小不同,则会引发值错误.我的代码出了什么问题?
你的代码运行正常.请注意,当输入为np.dot()矩阵时,np.dot()执行矩阵乘法
In [18]: a = np.array([[1, 5, 7], [6, 8, 9]])
...: b = np.array([[1, 8, 8], [5, 8, 0], [8, 9, 0]])
...:
# @ is equivalent to `np.dot()` and `np.matmul()` in Python 3.5 and above
In [19]: a @ b
Out[19]:
array([[ 82, 111, 8],
[118, 193, 48]])
In [20]: (a @ b).shape
Out[20]: (2, 3)
# sanity check!
In [22]: a @ b == np.matmul(a, b)
Out[22]:
array([[ True, True, True],
[ True, True, True]], dtype=bool)
Run Code Online (Sandbox Code Playgroud)
注意@:它是作为矩阵乘法的专用中缀运算符在Python 3.5中引入的
这是因为*操作符是否进行矩阵乘法或逐元素乘法存在一些混淆.因此,为了消除混淆,专门的运算符@被指定用于矩阵乘法.所以,
*执行逐元素乘法
@执行矩阵乘法(点积)
| 归档时间: |
|
| 查看次数: |
465 次 |
| 最近记录: |