はじめに
np.array
におけるNaN
に関する処理について、いろいろと説明する。
解説
データの生成
配列の一部をNaNにする
2番目の要素をnp.nan
とすることでNaN
にできる。
NaNであるかの判定
np.isnan(x)
でNaN
の部分がTrue
となった配列が返る。
NaNであるインデックスを取得
np.where
とnp.isnan(x)
を組み合わせることでNaN
である部分のインデックスが得られる。結果はtuple
で得られるので[0]とすることでnp.array
で結果が得られる。
NaNではないインデックスを取得
~np.isnan(x)
のように否定演算子をつけることでNaN
ではないインデックスを得ることができる。
配列中のNaNを除去
上記のNaN
ではないインデックスを配列に適用することでNaN
を除去できる。
配列中のNaNを他の値に置換
np.nan_to_num()の第一引数にNaN
を含む配列、第2引数でNaN
を置換する数を指定する。
x==np.nan
のようにしても置換することはできない。
NaNの数をカウント
np.count_nonzero()
でTrue
が何個あるかがわかるので、np.isnan
と組み合わせることでNaN
の数がわかる。
NaNを除外して計算
合計
NaN
がある場合は、np.nansum()
を用いる。下記のように、NaN
があると計算値はNaN
になる。
平均
中央値
標準偏差
累積和
最大値のインデックス
最小値のインデックス
最小値&最大値
パーセンタイル
コードをダウンロード(.pyファイル)
コードをダウンロード(.ipynbファイル)
DataFrameにおけるNan,Noneについて
pandasのDataFrameにおけるNan, Noneについては下記記事で説明した。
[pandas] 7. DatarFrameの欠損値(NaN, None)について
DataFrameにおける欠損値(NaN, None)の性質について説明する。
参考
numpy.isnan — NumPy v2.1 Manual
numpy.nansum — NumPy v2.1 Manual
Constants — NumPy v2.1 Manual
コメント