标题可能令人困惑。我有一个相当大的 3D numpy 数组。我想通过对大小为 (2,2,2) 的块进行分箱来将其大小减少 2^3。然后,新 3D 数组中的每个元素都应包含原始数组中相应块中元素的总和。
例如,考虑一个 4x4x4 数组:
input = [[[1, 1, 2, 2],
[1, 1, 2, 2],
[3, 3, 4, 4],
[3, 3, 4, 4]],
[[1, 1, 2, 2],
[1, 1, 2, 2],
[3, 3, 4, 4],
[3, 3, 4, 4]],
... ]]]
(我只代表它的一半以节省空间)。请注意,所有具有相同值的元素构成一个 (2x2x2) 块。输出应该是一个 2x2x2 数组,使得每个元素都是一个块的总和:
output = [[[8, 16],
[24, 32]],
... ]]]
所以 8 是所有 1 的总和,16 是 2 的总和,以此类推。