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

标签 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)),但它产生了错误的维度。

最佳答案

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

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

关于python - 如何复制 numpy 数组中最后一个维度的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20462542/

相关文章:

Python 通用函数调度

python - python : "type(A()) is A" returns false 中的用户定义类型检查

python - 使用 3 个现有列的条件在 Pandas 数据框中添加一列

python - Numpy 将一个数组的所有非零元素组合到另一个数组中

python - CV2 : numpy. core.multiarray 导入失败的问题

python peewee插入,表名在变量中

numpy - 转置时numpy和 Octave 的fft不同

python - 如何 reshape numpy图像?

Python Numpy 加性高斯白噪声函数

python - 从列表中返回随机子子列表及其索引