Numpy 3D arreglo de arreglos y remodelación

Tengo una matriz numpy en 3D que necesito remodelar y organizar. Por ejemplo, tengox=np.array([np.array([np.array([1,0,1]),np.array([1,1,1]),np.array([0,1,0]),np.array([1,1,0])]),np.array([np.array([0,0,1]),np.array([0,0,0]),np.array([0,1,1]),np.array([1,0,0])]),np.array([np.array([1,0,0]),np.array([1,0,1]),np.array([1,1,1]),np.array([0,0,0])])])

Que es una forma de (3,4,3), al imprimirlo obtengo:

array([[[1, 0, 1],
        [1, 1, 1],
        [0, 1, 0],
        [1, 1, 0]],

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

       [[1, 0, 0],
        [1, 0, 1],
        [1, 1, 1],
        [0, 0, 0]]])

Ahora necesito remodelar esta matriz a una(4,3,3) seleccionando el mismo índice en cada subconjunto y uniéndolos para terminar con algo como esto:

array([[[1,0,1],[0,0,1],[1,0,0]],
[[1,1,1],[0,0,0],[1,0,1]],
[[0,1,0],[0,1,1],[1,1,1]],
[[1,1,0],[1,0,0],[0,0,0]]]

Lo intentéreshape, todo tipo de apilamiento y nada funcionó (organizó la matriz como necesito). Sé que puedo hacerlo manualmente, pero para matrices grandes manualmente no es una opción.

Cualquier ayuda será muy apreciada. Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta