将1D阵列重塑为屏蔽的2D阵列

时间:2013-10-09 14:38:43

标签: python arrays mask reshape

好的,所以我有这个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只表示我计算过的浮点数。这样做的最佳方式是什么?感谢。

1 个答案:

答案 0 :(得分:3)

原谅可怕的变量名称:

f_values = some_function_of(indgrid[mask])
result = np.zeros(indgrid.shape)
result[mask] = f_values