更新2D numpy数组值

时间:2013-12-22 02:18:44

标签: python arrays function numpy

是否有更有效的方法来更新多维numpy数组的值?
例如,我有一个循环

        for i in np.arange(5):
            for j in np.arange(5):  
                if (i + j) % 2 == 0:   
                    v[i,j] = v[i,j] + v[i, j + 1]  

我在考虑稍后将这个过程并行化(使用multiprocessingPool),但我无法想象如何。也许定义一个函数并使用map,但这是一个2D数组,操作依赖于元素索引。

1 个答案:

答案 0 :(得分:4)

基本上你这样做:

enter image description here

您可以使用切片索引在两行中执行此操作:

v[0:5:2,0:5:2] += v[0:5:2,1:6:2]    # even rows
v[1:5:2,1:5:2] += v[1:5:2,2:6:2]    # odd rows