Python 有一行吗;dot产品“;在numpy 1D数组和条目为矩阵的数组之间?

Python 有一行吗;dot产品“;在numpy 1D数组和条目为矩阵的数组之间?,python,numpy,Python,Numpy,我想要一种简单的方法来获得向量r=[r[1],r[2],r[3]和数组a=[a[0],a[1],a[2]之间的“点积”,其中a[I]是矩阵,结果是 dot(r,A)=r[0]*A[0]+r[1]*A[1]+r[2]*A[2] 其中,点(r,A)是一个矩阵。例如,r可能是一个numpy 1D数组,而a可能是一个numpy ndarray。这是否可行 >>> A array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) >&

我想要一种简单的方法来获得向量r=[r[1],r[2],r[3]和数组a=[a[0],a[1],a[2]之间的“点积”,其中a[I]是矩阵,结果是

dot(r,A)=r[0]*A[0]+r[1]*A[1]+r[2]*A[2]

其中,点(r,A)是一个矩阵。例如,r可能是一个numpy 1D数组,而a可能是一个numpy ndarray。

这是否可行

>>> A
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>> r
array([1, 2, 3])
>>> (A.T * r).T
array([[ 1,  2,  3],
       [ 8, 10, 12],
       [21, 24, 27]])
A
的第一行乘以
r
的第一个元素,第二行乘以第二个元素,依此类推。只需转换矩阵并转换最终结果


注意-大型矩阵的计算成本很高。

参见
numpy.dot
()@PabloC是的,我读过,但我没有看到关于我的问题的具体例子。请给出一个具体的例子,说明
r
a
中预期的内容,以及使用代码预期的输出。基本上,a那根本不清楚你的意思,这就是我为什么要问的原因。使用代码。制作一个构建示例输入的程序,并精确显示您希望输入的输出。如果你有一些代码可以让你接近你想要的,那就有奖励了。我们不能读心,这很有帮助。但在您的示例中,结果应该是一个向量:行的总和。谢谢如果
r
是(3,1)形状:
A*r[:,无]