Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 如何沿特定轴乘以两个3d numpy数组?_Python_Arrays_Numpy - Fatal编程技术网

Python 如何沿特定轴乘以两个3d numpy数组?

Python 如何沿特定轴乘以两个3d numpy数组?,python,arrays,numpy,Python,Arrays,Numpy,假设我们有两个numpy数组:A带形状(n,p,q),B带形状(n,q,r) 如何将它们相乘得到一个具有形状的数组C(n,p,r)?我的意思是保持轴0,然后乘以轴1和2 我知道可以通过以下方式计算: C=np.stack([np.dot(a[i],b[i]),用于范围内的i(a.shape[0])) 但是有没有一个numpy函数可以直接用来计算它呢?我想你可以: B=np.zero((n,p,r))应该是B=np.zero((n,q,r))? # sample data n,p,q,r = 2,

假设我们有两个numpy数组:
A
带形状
(n,p,q)
B
带形状
(n,q,r)

如何将它们相乘得到一个具有形状的数组
C
(n,p,r)?我的意思是保持轴0,然后乘以轴1和2

我知道可以通过以下方式计算:
C=np.stack([np.dot(a[i],b[i]),用于范围内的i(a.shape[0]))

但是有没有一个numpy函数可以直接用来计算它呢?

我想你可以:

B=np.zero((n,p,r))
应该是
B=np.zero((n,q,r))
# sample data
n,p,q,r = 2,3,4,5
A = np.zeros((n,p,q))
B = np.zeros((n,p,r))

out = np.einsum('npq,nqr->npr',A,B)

out.shape
# (2, 3, 5)