首页 > 解决方案 > 3d数组中每n个切片的平均值 - python

问题描述

我有一个 3d 数组,它表示一个月 30 天的每小时数据。它的形状是 720x13x85(30 天有 720 小时)。我想取每 24 小时或 24 个切片的平均值,以便获得每日数据。这似乎是一个简单的问题,但我还没有找到方法,或者论坛其他地方对这个确切问题的任何答案。我发现这个相关的问题没有答案。

即我想得到以下内容,并计算每天的平均值

Day1precip = precip[0:24,:,:]

等等一个月。理想情况下,我希望结果为 3d 数组,因此 newarray[0,:,:] 是 day1,依此类推。

标签: pythonnumpymultidimensional-array

解决方案


添加一个新维度,然后取其平均值:

precip.reshape(-1, 24, *precip.shape[1:]).mean(1)

以后的维度总是更连续reshape。这意味着将第一个维度拆分30, 24为 30 个块,每个块包含 24 个元素,而不是相反。


推荐阅读