4

我有一个尺寸为 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)

仍然开放以获得更好的建议。

4

1 回答 1

1

你有正确的想法。稍微简化一下:

layer = np.repeat(np.arange(3)[:,None,None], data.shape[2], axis=2)
result = np.concatenate((data, layer), axis=1)
于 2018-02-06T17:50:18.057 回答