2014-09-05 122 views
0

我想重塑四個二維數組:A,B,C和D(爲了使函數最小化,我已經在「大數組」之前進行了分割......並且這些數組是最小化的分析結果)順序:如何重塑2D數組?

AB

CD

我嘗試用np.reshape或矢量化,然後串聯,但不可能得到這個命令,你可以看到下面的圖片,所有的混合。我應該有均勻

enter image description here

謝謝回答的結果,它通過這種方式效果很好!

我必須將其應用於大量的子陣列,所以我想自動化數組的重塑,例如下面的例子,4個數組的情況。正如你可以看到我嘗試用for循環,但它不工作,也許通過這種方式,它可能是不是非常快...

test_reshape = np.empty([20,20]) 


test_reshape[0:10,0:10] = frametemperature[0,:,:] 
test_reshape[0:10,10:10*2.] = frametemperature[1,:,:] 

test_reshape[10:10*2.,0:10] = frametemperature[2,:,:] 
test_reshape[10:10*2.,10:10*2.] = frametemperature[3,:,:] 



for i in range(frametemperature.shape[0]/2): 
    for j in range(frametemperature.shape[0]/2): 
     for k in range(frametemperature.shape[0]): 
      test_reshape[i*10:10*(i+1),j*10:10*(j+1)] = frametemperature[k,:,:] 
+0

爲最小化的代碼分配的陣列是在這裏:http://stackoverflow.com/questions/25682495 /蟒最小化-上子陣列-的-一個陣列上帶有一個柵。我適合我的4個數組與特定的功能,所以我有一個特定的meshgrid和每個數組的功能,這就是爲什麼我想重塑所有結果! – user3601754 2014-09-05 13:52:51

回答

1

所以,你已經得到了你想要回合併成一個4個二維數組二維數組。

1)create a empty 2d array to store them in

import numpy as np 
blank = np.empty([4,4]) 

2)根據它們的位置,而不是串聯

A = np.ones([2,2]) 
B = np.ones([2,2]) * 2 
C = np.ones([2,2]) * 3 
D = np.ones([2,2]) * 4 
blank[0:2,0:2] = a 
blank[0:2,2:4] = b 
blank[2:4,0:2] = c 
blank[2:4,2:4] = d 
blank