I have 2 2D numpy arrays with shape (160000,91)
.
160000
means all pixels of an image (200x800)
, 91
means # of images.
U(160000,91)
and V(160000,91).
How to create a numpy array X
with shape (91,200,800,2)
with X(:,:,:,0)
= U(91,200,800)
and X(:,:,:,1) = V(91,200,800)
?
CodePudding user response:
Try this
U = np.reshape(U, (91,200,800))
V = np.reshape(V, (91,200,800))
X = np.stack((U, V), axis=3)
CodePudding user response:
Transpose to move the batch dimension to axis 0. Then reshape the two arrays and stack them along a new axis 3:
import numpy as np
U = np.random.random((160000, 91))
V = np.random.random((160000, 91))
X = np.stack((np.reshape(U.T, (-1, 200, 800)),
np.reshape(V.T, (-1, 200, 800))),
axis=3)
print(X.shape) # (91, 200, 800, 2)