二选一
Deditos
  • 3.8 k
  • 15
  • 33

我猜你用的是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作为一个完整的数组操作,而不是使用所有这些嵌套循环。

Deditos
  • 3.8 k
  • 15
  • 33
Baidu
map