This question already has an answer here:
Scale rows of 3D-tensor
(1 个回答)
1年前关闭。
我有一个形状为
我想知道是否有一种单行方式来实现这一点。
谢谢!
同样的事情还有其他的表达方式,比如
(1 个回答)
1年前关闭。
我有一个形状为
a
的 3D numpy 数组 [M, N, 3]
和一个形状为 b
的二维数组 [M, N]
。我想将 a
的第 3 个维度中的 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.expand_dims(b, 2)
。 a * b[..., np.newaxis]
关于python - Numpy乘以N维矩阵的一维,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58366973/
10-12 17:03