如何重塑2D阵列?

时间:2014-09-05 13:38:25

标签: python arrays reshape

我想重塑四个2D数组:A,B,C和D(我在&#34之前拆分;大数组"为了最小化功能......这些数组是分析结果最小化)按特定顺序:

A B

C D

我尝试使用np.reshape或vectorize然后连接但不可能获得此顺序,如下图所示,所有内容都是混合的。我应该有一个同质的结果

enter image description here

感谢您的回答,这种方式运作良好!

我必须将它应用于大量的子阵列,所以我想自动化数组的重塑,如下例所示,4个数组的情况。你可以看到我尝试使用循环,但它不起作用,也许通过这种方式它可能不会很快......

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,:,:]

1 个答案:

答案 0 :(得分:1)

所以你有4个2d阵列想要组合成一个2d阵列。

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