【python】配列に混ざったnanを0に置き換える

0をnanに置き換えるのは
import numpy as np
a=np.array([np.nan,0,1])
b=np.where(a==0,np.nan,a)
みたいにするとできるのですが、
なぜか逆ができなかったのでついさっき見つけた解決法をメモしておきます。

nanを0に置き換える

a=np.array([nan,0,1])
b=np.where(a>-99999,a,0)

こうするとb=[0,0,1]になります。
-99999はデータに応じてこれ以下にはならんだろうと思う値を突っ込みます。
np.nanmin(a)でもして当たりをつけてください。

ちなみに
b=np.where(a==np.nan,0,a)
はエラーを吐くのでできません。

コメント

このブログの人気の投稿

TypeError: ufunc 'bitwise_xor' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

overleafで画像が表示されない!

エラー: ""C:\U" で始まる文字列の中で 8 進文字なしに '\U' が使われています