如何复制numpy数组中最后一个维度的值?

时间:2013-12-09 03:19:07

标签: python numpy

当我执行两个数组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)),但这会产生错误的尺寸。

1 个答案:

答案 0 :(得分:4)

a * b[..., np.newaxis]

在末尾给b另一个长度为1的轴,广播将为您处理此问题,而无需实际构建三重数组。