2024-04-18 23:09:34 发布
网友
我有两个二维数组A和B。我想得到一个三维数组C,它与A和B的关系是:
A
B
C
C_mnl=A_mn*B_ml
我怎样才能在numpy中优雅地做到这一点?你知道吗
也可以使用^{}-
C = A[...,None]*B[:,None,:]
解释
A[...,None]
None
A[:,:,None]
B[:,None,:]
1
2
(m,n,l)
^{}可以做到:
a = np.arange(6).reshape(3,2) # a.shape = (3, 2) b = np.arange(12).reshape(3,4) # b.shape = (3, 4) c = np.einsum('mn,ml->mnl', a, b) # c.shape = (3, 2, 4)
也可以使用^{} -
解释
A[...,None]
添加一个新轴作为最后一个轴,None
(相当于^{A[:,:,None]
相同。你知道吗B[:,None,:]
类似,它在现有维度之间添加了一个新的轴。你知道吗1
和2
中,我们将输入数组的轴对齐,因此,当使用元素乘法操作时,将产生所需的(m,n,l)
形状输出。你知道吗^{} 可以做到:
相关问题 更多 >
编程相关推荐