Python 如何对numpy数组应用bockwise转置

Python 如何对numpy数组应用bockwise转置,python,numpy,Python,Numpy,我知道这个问题很基本,但我正在寻找最好的方法。我的问题是,我们如何将numpy阵列重塑为所附图片中的垂直箭头 最后,我想把一个120*64*200改成1200*64*20 我想你在寻找: n_blocks = 2 b = np.concatenate(np.split(a, n_blocks, axis=1), axis=0) 基本上,您希望将阵列拆分为块,并将块连接到新轴上。我想您正在寻找: n_blocks = 2 b = np.concatenate(np.split(a, n_bloc

我知道这个问题很基本,但我正在寻找最好的方法。我的问题是,我们如何将numpy阵列重塑为所附图片中的垂直箭头


最后,我想把一个120*64*200改成1200*64*20

我想你在寻找:

n_blocks = 2
b = np.concatenate(np.split(a, n_blocks, axis=1), axis=0)

基本上,您希望将阵列拆分为块,并将块连接到新轴上。

我想您正在寻找:

n_blocks = 2
b = np.concatenate(np.split(a, n_blocks, axis=1), axis=0)
基本上,您希望将阵列拆分为块,并将块连接到新轴上。

您也可以使用

第一次重塑后,内容将为:

[[[ 1  2  3]
  [ 4  5  6]]

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

 [[13 14 15]
  [16 17 18]]]
使用神奇的转置,您将获得:

[[[ 1  2  3]
  [ 7  8  9]
  [13 14 15]]

 [[ 4  5  6]
  [10 11 12]
  [16 17 18]]]
然后再重新塑造为2d

通过方法链接,我们可以组合成一条语句,如:

arr.reshape(3, 2, -1).transpose(1, 0, 2).reshape(-1, 3)
你也可以用它来做

第一次重塑后,内容将为:

[[[ 1  2  3]
  [ 4  5  6]]

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

 [[13 14 15]
  [16 17 18]]]
使用神奇的转置,您将获得:

[[[ 1  2  3]
  [ 7  8  9]
  [13 14 15]]

 [[ 4  5  6]
  [10 11 12]
  [16 17 18]]]
然后再重新塑造为2d

通过方法链接,我们可以组合成一条语句,如:

arr.reshape(3, 2, -1).transpose(1, 0, 2).reshape(-1, 3)

转置也是可能的我的第一本能是把它改成120,64,10,20或120,64,20,10。然后转置/交换轴以生成120、10、64、20,最后重塑为1200、65、20。重塑和替换选项将影响最终布局。我的第一反应是将其重塑为120、64、10、20或120、64、20、10。然后转置/交换轴以生成120、10、64、20,最后重塑为1200、65、20。重塑和交换备选方案将影响最终布局。