for循环已经完成一个循环后的索引错误

Index Error after for loop has already completed one loop

我正在尝试使用 for 循环绘制最近 30 天的 sst 数据。我的代码将 运行 通过第一个循环正常,但随后在第二个循环中给出此错误:

Traceback (most recent call last):
  File "sstt.py", line 20, in <module>
    Temp = Temp[i,:,:]
IndexError: too many indices for array

无论我从什么索引开始,第二个循环总是给出这个错误。如果我从 -29 开始,那么 -28 会失败。如果我从 -28 开始,-27 失败,等等

代码:

import numpy as np
import math as m
import urllib2
from pydap.client import open_url
from pydap.proxy import ArrayProxy

data_url_mean = 'http://www.esrl.noaa.gov/psd/thredds/dodsC/Datasets/noaa.oisst.v2.highres/sst.day.mean.2015.v2.nc'

dataset1 = open_url(data_url_mean)

# Daily Mean

Temp = dataset1['sst']

timestep = [-29,-28,-27,-26,-25,-24,-23,-22,-21,-20,-19,-18,-17,-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1]

for i in timestep:

    # Daily Mean
    Temp = Temp[i,:,:]
    Temp = Temp.array[:]
    Temp = Temp * (9./5.) + 32. 
    Temp = Temp.squeeze()
    print i

您正在将所有值分配给同一个变量。在第一次循环后,Temp 不再等于数据集,并且尝试执行期望它是数据集的操作失败。

您需要为您赋值的变量想出一些新名称。