1. ホーム
  2. パイソン

[解決済み】配列からnan値を削除する

2022-03-28 15:51:15

質問

配列からnan値を削除する方法を見つけたいのですが。私の配列は次のようなものです。

x = [1400, 1500, 1600, nan, nan, nan ,1700] #Not in this exact configuration

を削除するにはどうすればよいですか? nan の値を x ?

解決方法は?

また、配列にnumpyを使用している場合は

x = x[numpy.logical_not(numpy.isnan(x))]

等価に

x = x[~numpy.isnan(x)]

[追加された略記をくれたchbrownに感謝します]。

説明

内側の関数です。 numpy.isnan の値を持つブール型/論理型の配列を返します。 True を使用することができます。 x はnot-a-numberです。その逆が欲しいので、not論理演算子を使います。 ~ を持つ配列を取得します。 True がある場所ならどこでも x は有効な数字です。

最後に、この論理配列を使って、元の配列のインデックスを作成します。 x で、NaNでない値だけを取り出す。