Python 如何沿特定轴乘以两个3d numpy数组?
假设我们有两个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,
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)