2017-12-21 7 views
1

私は巨大(N * 20)の行列を5行ごとに有効なサンプル、すなわち、すべての(5 * 20)マトリックス。私は次元20が変更されない(N/5,1,20,5)行列にそれを変形しようとしています。 keep_dimを使用して天気予報でそれを行うことができましたが、どうすればnumpyでこれを達成できますか?numpyで形を変えながら特定の寸法を変更しないでください。

ありがとうございます。その後、

+0

ポストは、それが働いたあなたのアレイと出力 –

答えて

3

リシェープと周りの軸を入れ替える:

arr1 = arr.reshape(N/5,5,1,20) 
arr2 = arr1.transpose(0,2,3,1) 

例えば

In [476]: arr = np.arange(24).reshape(6,4) 
In [477]: arr 
Out[477]: 
array([[ 0, 1, 2, 3], 
     [ 4, 5, 6, 7], 
     [ 8, 9, 10, 11], 
     [12, 13, 14, 15], 
     [16, 17, 18, 19], 
     [20, 21, 22, 23]]) 
In [478]: arr1 = arr.reshape(2,3,1,4) 
In [479]: arr2 = arr1.transpose(0,2,3,1) 
In [480]: arr2.shape 
Out[480]: (2, 1, 4, 3) 
In [482]: arr2 
Out[482]: 
array([[[[ 0, 4, 8], 
     [ 1, 5, 9], 
     [ 2, 6, 10], 
     [ 3, 7, 11]]], 


     [[[12, 16, 20], 
     [13, 17, 21], 
     [14, 18, 22], 
     [15, 19, 23]]]]) 
+0

。ありがとうございました! :) – jsantp

関連する問題