Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何结合元素乘法和矩阵乘法_Python_Numpy_Matrix_Scipy - Fatal编程技术网

Python 如何结合元素乘法和矩阵乘法

Python 如何结合元素乘法和矩阵乘法,python,numpy,matrix,scipy,Python,Numpy,Matrix,Scipy,我尝试将元素乘法和矩阵乘法结合起来,用于两个矩阵: 矩阵1形状:(N,N,3,3) 矩阵2形状:(N,N,3,1) 我想对前两个维度(N,N)执行元素操作,对后两个维度执行矩阵乘法。目标是得到一个(N,N,3,1)矩阵 我在numpy找不到一个好的手术,请问有没有合适的手术?谢谢 也许你想要这个。这本质上是内部(3,3)和(3,1)形矩阵的矩阵乘法 import numpy as np >>> a = np.random.rand(2, 2, 3, 3) >>&

我尝试将元素乘法和矩阵乘法结合起来,用于两个矩阵:

  • 矩阵1形状:(N,N,3,3)
  • 矩阵2形状:(N,N,3,1)
我想对前两个维度(N,N)执行元素操作,对后两个维度执行矩阵乘法。目标是得到一个(N,N,3,1)矩阵


我在numpy找不到一个好的手术,请问有没有合适的手术?谢谢

也许你想要这个。这本质上是内部
(3,3)
(3,1)
形矩阵的矩阵乘法

import numpy as np
>>> a = np.random.rand(2, 2, 3, 3)
>>> b = np.random.rand(2, 2, 3, 1)
>>> c = np.matmul(a, b)
>>> c.shape
(2, 2, 3, 1)

听起来像是
einsum
可能是你要找的,但是Divakar可能在我之前就找到了表达式。我想他们想要
einsum('ijkl,ijlm->ijkm',matrix1,matrix2)
maul/@
应该可以用了谢谢!einsum('ijkl,ijlm->ijkm',matrix1,matrix2)工作得很好!等价地,
a@b
给出了完全相同的结果(用numpy查找数组广播)。