好的,所以我有这个2D数组:
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
数组形状相同的2D数组中,所以我最终得到这个:
[[ 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
只表示我计算过的浮点数。这样做的最佳方式是什么?感谢。
答案 0 :(得分:3)
原谅可怕的变量名称:
f_values = some_function_of(indgrid[mask])
result = np.zeros(indgrid.shape)
result[mask] = f_values