Python N维矩阵的一维数乘
我有一个形状为Python N维矩阵的一维数乘,python,numpy,Python,Numpy,我有一个形状为[M,N,3]的3D numpy数组a,还有一个形状为[M,N]的2D数组b。我想将a第三维中的3个值分别乘以b中的相应值,我目前正在这样做: a[:,:,0]*=b a[:,:,1]*=b a[:,:,2]*=b 我想知道是否有一个单一的方式来实现这一点 谢谢 a*b[:,:,np.newaxis]可以: In [37]: a Out[37]: array([[[1, 2, 3], [4, 5, 6]]]) In [38]: b Out[38]: array(
[M,N,3]
的3D numpy数组a
,还有一个形状为[M,N]
的2D数组b
。我想将a
第三维中的3个值分别乘以b
中的相应值,我目前正在这样做:
a[:,:,0]*=b
a[:,:,1]*=b
a[:,:,2]*=b
我想知道是否有一个单一的方式来实现这一点
谢谢
a*b[:,:,np.newaxis]
可以:
In [37]: a
Out[37]:
array([[[1, 2, 3],
[4, 5, 6]]])
In [38]: b
Out[38]: array([[4, 5]])
In [39]: a * b[:,:,np.newaxis]
Out[39]:
array([[[ 4, 8, 12],
[20, 25, 30]]])
同样的事情还有其他的表达方式,比如
a*np.展开(b,2)
a*b[…,np.newaxis]