Pythonでは、特殊な浮動小数点数の値であるNaN(Not a Number)を扱うことがあります。この記事では、PythonでNaNを判定する基本的な方法を紹介します。
NaN(Not a Number)とは?
PythonにおけるNaN(Not a Number)は、IEEE 754規格の浮動小数点数の特殊な値で、数学的に未定義の演算結果を表します。
import math
# NaNの生成
nan_value = float('nan')
print(nan_value) # NaN
NaNの判定方法
NaNは数値ではないため、通常の比較演算子では正しく判定できません。そのため、Pythonではmath.isnan()
関数やnumpy.isnan()
関数を使用してNaNを判定します。
import math
import numpy as np
# NaNの判定
print(math.isnan(nan_value)) # True
# リストからNaNを削除する
values = [1, 2, np.nan, 4, np.nan]
values_without_nan = [x for x in values if not math.isnan(x)]
print(values_without_nan) # [1, 2, 4]
NaNの注意点
NaNは一般的な比較演算子での振る舞いが特異で、自分自身との比較でさえFalseを返します。
print(float('nan') == float('nan')) # False
また、NaNをif文で判定する場合も特異な動きを見せます。if文では、NaNが”正”と評価されます。
if float('nan'):
print('True') # True
これらの特性を理解し、適切な操作を行うことが重要です。
以上、PythonでNaNを判定する基本的な方法について解説しました。これらの知識を活用して、データ分析や機械学習のプロジェクトを進めていきましょう。