Python矩阵乘法中@和*有什么区别?

问题描述 投票:0回答:1

我知道一个人执行一种矩阵乘法,另一个人执行另一种矩阵乘法,但永远记不起其中的区别。

>>> import numpy as np
>>> a = np.matrix([[1, 2],[3,4]])

>>> print(a * a)
[[ 7 10]
 [15 22]]

>>> print(a @ a)
[[ 7 10]
 [15 22]]

似乎给出了相同的答案,这让我感到困惑。

python numpy
1个回答
4
投票

a * b
是一个乘法运算符 - 它将返回
a
中的元素乘以
b
中的元素。

a
b
都是矩阵(由
np.matrix
具体定义)时,结果将与
@
运算符相同。

a @ b
是矩阵乘法(与向量一起使用时的点积)。如果您没有指定
a
是矩阵并改用数组,则
a * a
将返回
a
平方中的每个元素。

© www.soinside.com 2019 - 2024. All rights reserved.