如何对形状为(1000,128,128)的NumPy数组每10个取平均?
解决方法
你可以通过重塑数组形状再取均值的方式实现这个需求,步骤如下:
先将原数组在axis=0维度上按每10个一组拆分,重塑为
(100, 10, 128, 128)的形状:reshaped_data = data.reshape(100, 10, 128, 128)这里的100由
1000 // 10计算而来,刚好匹配你的数组长度。在新增的axis=1维度上计算均值,直接得到目标形状的数组:
result = np.mean(reshaped_data, axis=1)
也可以把两步合并成一行代码:
result = data.reshape(100, 10, 128, 128).mean(axis=1)
如果遇到原数组axis=0长度不是分组数整数倍的情况,可改用np.array_split拆分后逐个取平均,但你的场景下1000刚好是10的整数倍,直接reshape的方式效率最高。
内容的提问来源于stack exchange,提问作者Viral Parekh
相关产品推荐
相关产品推荐

