2016-04-29 22 views
1
import numpy as np 
a = np.array([[1,2], 
       [3,4], 
       [5,6], 

      [7,8], 
      [9,10], 
      [11,12]]) 
print np.shape(a) 

予想答えは次のようになります。numpyの配列に並べ替える

answer = np.array([[1,2,7,8], 
       [3,4, 9, 10], 
       [5,6, 11, 12]]) 

は私が

ans = a.reshape(3,-1)  
print ans 

[[ 1 2 3 4] 
[ 5 6 7 8] 
[ 9 10 11 12]] 

と試みたが、答えは間違っています。どうやってするの?

答えて

0

私はこの操作にsplitを使用しました:

In [110]: np.hstack(np.split(a,2)) 
Out[110]: 
array([[ 1, 2, 7, 8], 
     [ 3, 4, 9, 10], 
     [ 5, 6, 11, 12]]) 
2

あなたがそうのように、軸の一部の整形とスワッピングを使用することができます -

L = 3 # Cutting length 
out = a.reshape(-1,L,a.shape[1]).swapaxes(0,1).reshape(L,-1) 

かそこらのように、軸を交換するnp.transposeを使用 -

out = a.reshape(-1,L,a.shape[1]).transpose(1,0,2).reshape(L,-1)