将 2D numpy 数组转换为具有第 3 维的 3D numpy 数组

Convert 2D numpy array into 3D numpy array with 3rd dimension

我有一个二维形状的 numpy 数组

a=np.array([[1,2,3,4,5,6],
            [7,8,9,10,11,12],
            [13,14,15,16,17,18]])

并尝试转换成维度 (3,3,2) 的 3D 形状,即

np.array([[ 1,2,3],
          [7,8,9],
          [13,14,15]])

在第 3 个维度中,索引为 1 并且

np.array([[4,5,6],
          [10,11,12],
          [16,17,18]])

在第 3 个维度中,索引为 2。

我试图重塑为 a.reshape(3,3,2) 并得到这个

array([[[ 1,  2,  3],
        [ 4,  5,  6]],

       [[ 7,  8,  9],
        [10, 11, 12]],

       [[13, 14, 15],
        [16, 17, 18]]])

有什么转换的建议吗?

使用swapaxes:

a.reshape(3,2,3).swapaxes(0,1)

输出:

array([[[ 1,  2,  3],
        [ 7,  8,  9],
        [13, 14, 15]],

       [[ 4,  5,  6],
        [10, 11, 12],
        [16, 17, 18]]])