我有一个尺寸为12 x 12 x 4
的numpy数组。现在我正在尝试向此多维数据集添加一个额外的图层,从而生成一个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)
仍然可以提供更好的建议。
答案 0 :(得分:1)
你有正确的想法。略有简化:
layer = np.repeat(np.arange(3)[:,None,None], data.shape[2], axis=2)
result = np.concatenate((data, layer), axis=1)