什么';@和*与python矩阵乘法的区别是什么?

什么';@和*与python矩阵乘法的区别是什么?,python,numpy,Python,Numpy,我知道一个做一种矩阵乘法,另一个做另一种,但我永远记不住区别 做 似乎给出了让我困惑的相同答案。a*b是一个乘法运算符-它将返回a中的元素乘以b中的元素 当a和b都是矩阵(由np.matrix专门定义)时,结果将与@运算符相同 a@b是矩阵乘法(与向量一起使用时的点积)。如果您没有指定a是一个矩阵,而是使用了数组,a*a将返回a中的每个元素的平方。a*b是一个乘法运算符-它将返回a中的元素乘以b中的元素 当a和b都是矩阵(由np.matrix专门定义)时,结果将与@运算符相同 a@b是矩阵乘法(

我知道一个做一种矩阵乘法,另一个做另一种,但我永远记不住区别


似乎给出了让我困惑的相同答案。

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

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


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

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

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


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

您尝试了什么?没有内置类型支持
@
,IIRC。这应该以支持
@
的类型记录,例如
numpy
模块提供的类型。np.matrix(与np.array相反)除外;np.matrix将*映射到矩阵乘法,因为它是一个特殊的类,早于@,用于使其进行“自然”矩阵乘法。这可能是被认为不推荐使用的原因之一。@theEpsilon numpy.matrix不推荐使用。您可以将numpy.array与@一起使用。@YoanaG问题已重新打开。请随意提交答案您尝试了什么?没有内置类型支持
@
,IIRC。这应该以支持
@
的类型记录,例如
numpy
模块提供的类型。np.matrix(与np.array相反)除外;np.matrix将*映射到矩阵乘法,因为它是一个特殊的类,早于@,用于使其进行“自然”矩阵乘法。这可能是被认为不推荐使用的原因之一。@theEpsilon numpy.matrix不推荐使用。您可以将numpy.array与@一起使用。@YoanaG问题已重新打开。请随时提交答案
>>> 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]]