【发布时间】:2021-05-02 14:52:27
【问题描述】:
通常:a * b == np.multiply(a, b)
但在这种情况下:
a=np.matrix(([1,2,3],[1,2,3],[1,2,3]))
b = np.array(([1,2,3]))
print( a.dot(b))
print(np.multiply(a,b))
print(a * b)
我有一个问题:
[[14 14 14]]
[[1 4 9]
[1 4 9]
[1 4 9]]
Traceback (most recent call last):
File "C:\Users\FAROUQ\.spyder-py3\untitled0.py", line 28, in <module>
print(a * b)
ValueError: shapes (3,3) and (1,3) not aligned: 3 (dim 1) != 1 (dim 0)
请你解释一下为什么?
【问题讨论】:
-
* 是 np.matrix 的矩阵乘法运算符,a 是矩阵,而不是数组。当您调用 a.__mul__ 时,它确实是点积。将 a 更改为一个数组,它的行为将符合您的预期。