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

时间:2015-03-01 09:44:17

标签: python for-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

1 个答案:

答案 0 :(得分:0)

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

您需要为您为其指定值的变量提供一些新名称。