如何在多个时间步上对变量的数据进行平均

How to average data for a variable over a number of timesteps

我想知道是否有人可以阐明我如何计算这些数据的平均值:

我有一个 .nc 文件,其中包含与时间、纬度和经度相关的数据(维度:2029、64、32)。使用这些命令我可以绘制单独的时间步长:

timestep = data.variables['precip'][0]
plt.imshow(timestep)
plt.colorbar()
plt.show()

以这种格式给出第 0 个时间步长的图形:

我想知道是否有任何方法可以对第一个维度(时间快照)进行平均。

我认为如果您正在使用 pandasnumpy 这可能会对您有所帮助。Look for more details

import pandas as pd
import numpy as np

data = np.array([10,5,8,9,15,22,26,11,15,16,18,7])
d = pd.Series(data)
print(d.rolling(4).mean())

如果您希望对所有时间取平均值,请尝试使用 np.mean,您可以在其中使用 axis 关键字来说明您想要平均哪个轴。

time_avaraged = np.mean(data.variables['precip'], axis = 0)

如果您有 NaN 个值,那么 np.mean 将为该 lon/lat 点提供 NaN。如果您宁愿忽略它们,请使用 np.nanmean.

如果您只想在特定时间进行,例如前 1000 个时间步,然后你可以做

time_avaraged = np.mean(data.variables['precip'][:1000,:,:], axis = 0)