这是我第一次使用Python编程(之前我使用过NCL),我尝试将变量 rad_cool 和 prec 的经度维度加倍。 但我的Python语法有问题并得到错误:
IndexError: list assignment index out of range
这是我的代码:
n=np.size(time_sat)
m=np.size(lat_sat)
l=np.size(lon_sat)*2
prec_double=[[n],[m],[l]]
rad_cool_double=[[n],[m],[l]]
for j in range(0,720):
if(j<=359):
rad_cool_double[:][:][j]=rad_cool[:][:][j]
prec_double[:][:][j]=prec[:][:][j]
else:
rad_cool_double[:][:][j]=rad_cool[:][:][j-np.size(lon_sat)]
prec_double[:][:][j]=prec[:][:][j-np.size(lon_sat)]
任何人都可以帮助我吗?
干杯, 利奥
答案 0 :(得分:0)
我认为您希望prec_double
和rad_cool_double
成为numpy数组。在这里,您已将它们定义为列表。
n=731
m=180
l=720
prec_double=[[n],[m],[l]]
将导致prec_double成为
的列表[[731], [180], [720]]
您希望使用
将这些变量创建为numpy数组prec_double = np.zeros([n,m,l])
这将用零填充它们。
答案 1 :(得分:0)
好的,我修好了!有错误的切片。
Not [:][:][j] but [:,:,j]
谢谢! :)