从双循环追加数据

时间:2019-03-02 19:26:19

标签: python loops numpy interpolation

我正在使用pyresample进行插值,并且有如下循环:

for l in range(len(lf[:,0,0,0])):
    for k in range(len(lf[0,:,0,0])):
        lf_nearest = pyresample.kd_tree.resample_nearest(origin_def, lf[l,k,:,:], target_def, radius_of_influence=50000, fill_value=0.5)

因此,如您所见,我为原始变量“ lf [l,k,:,:]”的每个l和每个k计算了“ lf_nearest”。 我如何才能从这些循环中附加所有这些值,以便最终获得4D lf_nearest [l,k,:,:]?

1 个答案:

答案 0 :(得分:1)

Python中的基本迭代分配-通过列表进行演示:

In [159]: alist = [0,0,0,0,0]                                                   
In [160]: for i in range(len(alist)): 
     ...:     alist[i] = i*i 
     ...:                                                                       
In [161]: alist                                                                 
Out[161]: [0, 1, 4, 9, 16]

或带有二维数组:

In [162]: arr = np.zeros((3,2),int)                                             
In [163]: arr                                                                   
Out[163]: 
array([[0, 0],
       [0, 0],
       [0, 0]])
In [164]: for i in range(arr.shape[0]): 
     ...:     for j in range(arr.shape[1]): 
     ...:         arr[i,j] = 10*i + j 
     ...:                                                                       
In [165]: arr                                                                   
Out[165]: 
array([[ 0,  1],
       [10, 11],
       [20, 21]])

但是首选方法是使用全数组操作,而不是迭代:

In [166]: np.arange(0,30,10)[:,None] + np.arange(2)                             
Out[166]: 
array([[ 0,  1],
       [10, 11],
       [20, 21]])