配列内の条件をチェックし、条件が満たされた位置で操作を実行したいと考えています。例えば、コードのこの作品は、仕事を行います。配列内の条件を確認する
res = somefunction(x)
for i in range(x.shape[0]):
for j in range(x.shape[1]):
if not 6 < res[i,j] < 18:
x[i,j] = float('nan')
をしかし、私は速い(短い)の方法は、おそらくこのようなものになるだろうと思った:
x[not 6 < somefunction(x) < 18] = float('nan')
しかし、Pythonは条件がチェックというエラーになります要素以上の配列では機能しません。コードを高速化する方法はありますか?
'のX [〜((6 < x)&(x <18))] = np.nan'はうまくいくでしょうか? –