我猜你用的是NOAA OISST数据,尽管我不认为这对这里的答案有什么影响。
注意你的循环,
For I in range(len(lat)): For j in range(len(lon)): For m in range(len(lat)): For n in range(len(lon)):
会生成索引,
I = 0,…, 8 j = 0,…31岁的m = 0, ..., 8 n = 0, ..., 31
将全局SST数组子集sst5 (59:90, i, j)
而且sst5 (59:90, m, n)
你不是在从你的热带点提取数据纬度
而且朗
变量,你只是从数组的一角提取数据。这里是南极洲,因此没有海表温度数据numpy.corrcoef
将只看到缺失的数据值,并试图除以零协方差,产生NaN值。当发生这种情况时,我的Numpy会发出以下警告:
RuntimeWarning:在true_divide c /= stddev[:,无]中遇到的无效值
我猜你可以把你想要的点提取到一个有形状的数组中(NTIME NPOINTS)
并调用np.ma.corrcoef
作为一个完整的数组操作,而不是使用所有这些嵌套循环。