こんにちは!ライターの遠藤です。
突然ですが、”NaN”ってご存知でしょうか?
この記事では、
「NaNって何?」
「PythonでNaNの判定の仕方がわからない」
という方に向けて、
【基礎】NaNとは?
【応用】PythonにおけるNaNの判定方法
について簡潔にまとめました。
この記事を読めばNaNの意味と性質、判定方法が分かります。
ぜひ最後までお付き合いください!
本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。
→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説
なお、その他のPythonの記事についてはこちらにまとめています。
NaNとは?
まずはじめにNaNの意味とは、「Not a Number」の略です。
つまり、非数ですね。
読み方はシンプルに、「ナン」です。
Noneと似ているのですが、別物なので要注意です。
NaNは浮動小数点における考え方で、実数が異常な値であることを示しています。
NaNになるケースは様々ありますが、よくある例ではcsvファイル等を読み込んだ際、入力が無い場合などに非数となります。
「NaNの時は0を代入する」といった処理をしたい場合などに使えます。
NaNの判定方法
pythonでNaNを判定するには、いくつかの方法があります。
以降では具体的な判定方法を3つ紹介します。
自分自身と比較する
NaNには特別な性質があります。
それは
・NaNの四則演算の結果はNaNとなる
・NaNの比較演算は必ずFalseとなる
という点です。
この性質を利用し、自分自身と比較することでNaNかどうかの判定を行うことができます。
具体的な例は以下になります。
import numpy as np Nan = np.nan #ここでNaNを生成しています if Nan == Nan: print ("This is not NaN") else: print ("This is NaN")
普通の値であれば自分自身と比較すれば当然イコールとなるのですが、NaNの場合はその性質からイコールになりません。
そんな性質を利用した比較方法です。
実行結果:
This is NaN
isnanを使う(numpy)
続いて紹介する方法は、isnan()という関数によって判定する方法です。
これを実行するには、nampyをインポートする必要があります。
ただ、numpyは環境によって含まれていない場合がありますので、もしエラーが出た場合はnumpyをインストールしてください。
$ pip install numpy
上記のコマンドでインストールができます。
さて、numpyのisnan()を利用した実際の判定方法を確認してみましょう。
import numpy as np Nan = np.nan if np.isnan(Nan): print ("This is NaN") else: print ("This is not NaN")
isnan()ではNaNかどうかを判定するので、対象となる値がNaNの時にTrueとなります。
mathを使う
続いてmathのisnan()を使った方法を紹介します。
こちらは標準のライブラリに入っているため、numpyよりハードルは低めと思われます。
import math Nan = math.nan if math.isnan(Nan): print ("This is NaN") else: print ("This is not NaN")
結果は他の例と同じです。
まとめ
いかがでしたでしょうか?
今回の記事では、
【基礎】NaNとは?
【応用】PythonにおけるNONの判定方法
について解説致しました。
NaNという単語は人によっては見慣れないものかと思いますが、性質さえ分かれば比較的簡単に理解ができるかと思います。
もしプログラミングの中でNaNを使うことがあれば、ぜひこの記事を思い出してNaNの考え方を使いこなしてください!