我试图从1901年至2015年期间观测到的降水数据集中获得月度资金。我的预变量的当前形状是(1380(time), 360(lon), 720(lat))
,其中1380是115年期间的月数。我被告知要计算月度均值,最有效的方法是在np.reshape
变量上执行prec
命令,将数组拆分为数月和数年。但是我不确定最好的方法是什么。我还想知道在Python中是否有办法选择一年中的特定月份,因为我将为一年中的每个月制作情节。
我一直试图使用下面的代码重塑prec
变量。但是我不确定如何正确地做到这一点:
#Set Source Folder
sys.path.append('../../..')
SrcFld = ("/export/silurian/array-01/obs/CRU/")
#Retrieve Data
data_path = ''
example = (str(SrcFld) + 'cru_ts4.00.1901.2015.pre.dat.nc')
Data = Dataset(example)
#Create Prec Mean Array and reshape to get monthly means
Prec_mean = np.zeros((360,720))
#Retrieve Variables
Prec = Data.variables['pre'][:]
lats = Data.variables['lat'][:]
lons = Data.variables['lon'][:]
np.reshape(Prec, ())
#Get Annual/Monthly Average
Prec_mean =np.mean(Prec,axis=0)
对此问题的任何指导都将不胜感激。
答案 0 :(得分:0)
以下代码片段将首先按年将降水数组切成小方块。然后,我们可以使用该数组获取月平均降水量。
>>> prec = np.random.rand(1380,360,720)
>>> ind = np.arange(12,1380,12)
>>> yearly_split = np.array(np.split(prec, ind, axis=0))
>>> yearly_split.shape
(115, 12, 360, 720)
>>> monthly_mean = yearly_split.mean(axis=0)
>>> monthly_mean.shape
(12, 360, 720)