我有以下数组(数字仅作为示例):
arr = np.array([[1, 1, 1, 2, 2, 2, 3, 3, 3, 4 ,4, 4 ],
[1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4 ],
[1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4 ],
[5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8 ],
[5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8 ],
[5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8 ],
[9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 12],
[9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 12],
[9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 12],
[13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16],
[13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16],
[13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16]])
我希望通过一种方式减少维度,使得每9个元素(3x3区域)的相同数字被加总。因此12*12的数组应该变成4x4的数组。
我在这里寻找其他答案,并找到了一个适用于1D数组的解决方案,我进行了调整。然而,它并没有按照预期工作:
result = np.sum(arr.reshape(-1,3), axis=1)
result = np.sum(result .reshape(3,-1), axis=0)
如何正确地实现所需结果?