我有一个形状为(4,4)的数组,我将他除以(2,2)的块,是否可以用相反的方式再次获得(4,4)形状?
示例:
array_4x4 = [[100,123,3,7],
[134,43,67,90],
[9,10,11,12],
[13,14,15,16]]
blocks_2x2 = [[100,123,134,43],[3,7,67,90],[9,10,13,14],[11,12,15,16]]
如何再次获得第一个形状?
blocks_2x2 = [[100,123,134,43],[3,7,67,90],[9,10,13,14],[11,12,15,16]]
num_blocks = 4
final_ = []
for i in range(num_blocks):
for j in range(2):
final_.append(np.array(blocks_2x2 [i])[:,j])
我该怎么做?
答案 0 :(得分:0)
您可以不使用numpy
来执行此操作,如下所示:
blocks_2x2 = [[1,2,5,6],[3,4,7,8],[9,10,13,14],[11,12,15,16]]
result = []
for i in range(0,len(blocks_2x2)-1,2):
for j in range(2):
result.append(blocks_2x2[i][j*2:j*2+2] + blocks_2x2[i+1][j*2:j*2+2])
print(result)
输出:
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
我们迭代blocks_2x2
列表中的每两个子列表,并将两个列表的前一半和后一半加入。请注意,仅针对您提供的数据对特定代码进行了测试。