当我执行两个数组a和b的成对乘法时,我得到一个numpy错误,因为a的尺寸为100 x 200 x 3,而b的尺寸为100 x 200.但是,b只包含0和1。如何重复b的最后一个维度3次以将b转换为100 x 200 x 3阵列?
这类似于matlab中的repmat。我基本上想要将b的最后一个维度重复三次。我已经尝试了np.tile(b, (1, 1, 3))
,但这会产生错误的尺寸。
答案 0 :(得分:4)
a * b[..., np.newaxis]
在末尾给b
另一个长度为1的轴,广播将为您处理此问题,而无需实际构建三重数组。