是否有更有效的方法来更新多维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]
我在考虑稍后将这个过程并行化(使用multiprocessing
和Pool
),但我无法想象如何。也许定义一个函数并使用map
,但这是一个2D数组,操作依赖于元素索引。
答案 0 :(得分:4)
基本上你这样做:
您可以使用切片索引在两行中执行此操作:
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