0

OK、次の 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 配列から取り出された値の 1D 配列です。次に、これらの値に対していくつかの計算を実行し、完了したら、各要素から計算された値を配列と同じ形状の 2D 配列に入れます。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 に答える