我想在 NumPy 中找到二维数组的块均值。为简单起见,我们假设数组如下:
array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]])
我想把这个数组分成 3 个大小为 2x4 的块,然后找到所有三个块的均值(这样均值的形状是 2x4。第一个块由前 4 列组成,下一个由下一个4列等等。所以我的块是:
array([[0, 1, 2, 3],
[12, 13, 14, 15]])
array([[ 4, 5, 6, 7],
[16, 17, 18, 19]])
array([[ 8, 9, 10, 11],
[20, 21, 22, 23]])
我可以使用循环来执行此操作,但我觉得最好先将此数组转换为 3D 数组reshape
,然后mean
在沿第三轴的 3D 数组上使用该方法。这可能类似于这个问题。
如果有人能提供给我,将不胜感激:
1)。如果存在这样的技巧,则执行块的适当 Pythonic 命令甚至无需转换为 3D。
2)。如果不是适当的 Pythonic 命令来执行 2D 到 3D 转换。
3)。了解使用循环或使用上面的命令是否会更有效(在空间方面)。