Два связанных метода:
# create example array
A = np.sum(np.ix_(np.array(list("abcxyz"),"O"),np.array(list("1234"),"O"))).astype("U2")
A
# array([['a1', 'a2', 'a3', 'a4'],
# ['b1', 'b2', 'b3', 'b4'],
# ['c1', 'c2', 'c3', 'c4'],
# ['x1', 'x2', 'x3', 'x4'],
# ['y1', 'y2', 'y3', 'y4'],
# ['z1', 'z2', 'z3', 'z4']], dtype='<U2')
Вы можете использовать изменение формы и swapaxes
:
A.reshape(2,-1,A.shape[-1]).swapaxes(0,1).reshape(A.shape)
, или вы можете изменить форму дважды, используя порядок FORTRAN в одном, но не в другом направлении. :
A.reshape(-1,2,A.shape[-1],order='F').reshape(A.shape)
или
A.reshape(2,-1,A.shape[-1]).reshape(A.shape,order="F")
Результат во всех случаях
# array([['a1', 'a2', 'a3', 'a4'],
# ['x1', 'x2', 'x3', 'x4'],
# ['b1', 'b2', 'b3', 'b4'],
# ['y1', 'y2', 'y3', 'y4'],
# ['c1', 'c2', 'c3', 'c4'],
# ['z1', 'z2', 'z3', 'z4']], dtype='<U2')