我有一个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])