我正在尝试在降雨时间序列和SST之间进行空间降雨关联。我的代码如下
#'OND_rainfall_index_list' is a list of 27 (1990-2016) values of spatially averaged rainfall in eastern Africa
#trial_x is a (27,48,80) multidimensional array of SST (time, lat,lon) in the Indian Ocean
corr = np.zeros((27,48,80))
corr.shape
for m in range(48):
for n in range(80):
corr[m,n]=stats.pearsonr(OND_rainfall_index_list, trial_x[:,m,n])[0]
OND_rainfall_index_list
是东部非洲27个空间平均降雨量的list
,而trial_x
是SST的多维数组。
我正在尝试初始化一个矩阵,然后可以用相关值填充该矩阵。我想最后得到一个与trial_x
大小相同的矩阵,但要使用相关值。我该怎么办?目前,在运行循环时出现以下错误。
> IndexError: index 48 is out of bounds for axis 1 with size 48
答案 0 :(得分:1)
您的矩阵df[nm1] <- df[i1] + df[i2]
的形状为corr
。这是3D阵列。
但是,您有一行:
(27,48,80)
您期望corr[m,n]=stats.pearsonr(OND_rainfall_index_list, trial_x[:,m,n])[0]
与什么相关?第一维和第二维还是第二维和第三维?
我希望第二和第三。
因此,如果输出如下:
corr[m, n]
的大小为stats.pearsonr(OND_rainfall_index_list, trial_x[:,m,n])[0]
,然后使用:
(27,)
但如果大小为corr[:, m,n]=stats.pearsonr(OND_rainfall_index_list, trial_x[:,m,n])[0]
,请使用:
(1,)