变量的双维

时间:2017-03-24 04:08:23

标签: python

这是我第一次使用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)] 

任何人都可以帮助我吗?

干杯, 利奥

2 个答案:

答案 0 :(得分:0)

我认为您希望prec_doublerad_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]

谢谢! :)