numpy 3D数组根据行顺序重塑/平面为1D数组



我有一个3D NumPy数组

x = np.array([[[0, 0, 0, 0],
[1, 1, 1, 1],
[2, 2, 2, 2]],
[[0, 0, 0, 0],
[1, 1, 1, 1],
[2, 2, 2, 2]]])

如果我想通过取x[0]的第n°0行,x[1]的第n°0行,x[0]的第n°1行,x[1]的第n°1行,x[0]的第n°2行,x[1]的第n°2行,将3D数组平展为1D数组,并得到以下布局:

[0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2]

我怎样才能做到这一点?试着重塑,压平,都没用。

可以将数组堆叠起来,然后将其平放:

>>> np.stack(x, axis=1).flatten()
array([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2])

最新更新