0

好的,所以我有这个二维数组:

print indgrid

[[0 6 9 3 1]
[5 9 7 4 5]
[2 8 3 8 4]
[5 6 2 6 8]
[5 3 7 7 0]]

然后我给它贴一个面具:

print mask

[[False False  True False False]
 [False  True  True  True False]
 [ True  True  True  True  True]
 [False  True  True  True False]
 [False False  True False False]]


print indgrid[mask]

[9 9 7 4 2 8 3 8 4 6 2 6 7]

所以现在这是一个从 indgrid 数组中取出的一维值数组。然后我想对这些值执行一些计算,然后当我完成后,将从每个元素计算的值放入一个与数组形状相同的二维数组中indgrid,所以我最终会得到这个:

[[ 0 0 f 0 0 ]
[ 0 f f f 0 ]
[ f f f f f ]
[ 0 f f f 0]
[ 0 0 f 0 0 ]]

其中f仅代表我计算的浮点数。这样做的最佳方法是什么?谢谢。

4

1 回答 1

3

原谅可怕的变量名:

f_values = some_function_of(indgrid[mask])
result = np.zeros(indgrid.shape)
result[mask] = f_values
于 2013-10-09T14:41:23.303 回答