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 不再等于数据集,并且尝试执行期望它是数据集的操作失败。
您需要为您赋值的变量想出一些新名称。
我正在尝试使用 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 不再等于数据集,并且尝试执行期望它是数据集的操作失败。
您需要为您赋值的变量想出一些新名称。