NumPyTweetNumPy配列ndarrayの欠損値NaN(np.nanなど)の要素を他の値に置換する場合、np.nan_to_num()を用いる方法やnp.isnan()を利用したブールインデックス参照を用いる方法などがある。任意の値に置き換えたり、欠損値NaNを除外した要素の平均値に置き換えたりできる。ここでは以下の内容について説明する。欠損値の要素を他の値で置換するのではなく削除する場合は、以下の記事を参照。NumPyの配列ndarrayの欠損値np.nanを含む行や列を削除また、pandasを使う場合は、欠損値を操作する方法が別途用意されている。print()での出力時はnanと表示される。numpy_nan_replace.py明示的に欠損値NaNを生成したいときはnp.nanやfloat('nan')などを使う。そのほか、標準ライブラリのmathモジュールをインポートしてmath.nanとしてもよい。numpy_nan_replace.py欠損値同士を==で比較してもFalseとなってしまうため、欠損値かどうかを判定するにはnp.isnan()かmath.isnan()を使う。numpy_nan_replace.pynp.isnan()ではndarrayの各要素に対して欠損値NaNかどうかを判定することもできる。元となるCSVファイルのデータが欠落している場合、np.genfromtxt()で読み込むときに引数filling_valuesを指定すると、欠落箇所を任意の値で埋めることができる。0で埋めたい場合は以下の通り。numpy_nan_replace.py欠損値ではない要素の平均値などはデータを読み込んだあとでないと算出できないため、np.genfromtxt()での読み込み時には指定できない。以降に説明する方法を使う。欠損値NaNを置換するにはnp.nan_to_num()を使う。Manualnp.nan_to_num()の第一引数に配列ndarrayを指定すると、デフォルトでは欠損値が0に置換された新たなndarrayが生成される。元のndarrayは変更されない。numpy_nan_replace.py第二引数copyをFalseとすると元のndarrayが変更される。numpy_nan_replace.pyNumPyバージョン1.17以降は第三引数nanで置換する値を指定できる。numpy_nan_replace.py欠損値ではない要素の平均を算出する関数np.nanmean()を利用して、平均値に置き換えることも可能。numpy_nan_replace.py1.17より前のバージョンでは引数nanが実装されていないので、0以外の値に置換したい場合は次に説明する方法を使う。欠損値NaNか否かを判定する関数np.isnan()を使って、欠損値の位置がTrueとなるndarrayを取得できる。numpy_nan_replace.pyこれを利用して、欠損値の位置に任意の値を代入することで、欠損値を置き換えることができる。0に置換したい場合は以下の通り。numpy_nan_replace.pynp.nanmean()を使って平均値に置き換えることも可能。