如何在多个时间步上对变量的数据进行平均
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 个时间步长的图形:
我想知道是否有任何方法可以对第一个维度(时间快照)进行平均。
我认为如果您正在使用 pandas 和 numpy 这可能会对您有所帮助。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)
我想知道是否有人可以阐明我如何计算这些数据的平均值:
我有一个 .nc 文件,其中包含与时间、纬度和经度相关的数据(维度:2029、64、32)。使用这些命令我可以绘制单独的时间步长:
timestep = data.variables['precip'][0]
plt.imshow(timestep)
plt.colorbar()
plt.show()
以这种格式给出第 0 个时间步长的图形:
我想知道是否有任何方法可以对第一个维度(时间快照)进行平均。
我认为如果您正在使用 pandas 和 numpy 这可能会对您有所帮助。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)