使用Numpy向三维数组添加一层

5
我有一个numpy数组,其维度为12 x 12 x 4。现在我想要给这个立方体添加一个额外的层,结果是一个12 x 13 x 4的数组。这第13层应该包含来自第一个轴的相应索引,因此例如寻址[7, 13, :]会得到[7, 7, 7, 7]
很难解释,但也许有人知道如何用numpy实现这一点?
编辑: 我已经找到了一个解决方案,尽管它似乎有点复杂:
# Generate extra layer
layer = np.repeat(np.arange(0, 12)[:, np.newaxis], data.shape[2], axis=1)

# Get dimensions right...
layer = np.expand_dims(layer, axis=1)

# ... and finally append to data
result = np.append(data, layer, axis=1)

仍然开放接受更好的建议。


使用concatenate函数。但要注意维度。 - hpaulj
1个回答

2

您的想法是正确的。稍作简化:

layer = np.repeat(np.arange(3)[:,None,None], data.shape[2], axis=2)
result = np.concatenate((data, layer), axis=1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接