スポンサーリンク
特殊データである「非数」は、Pythonで数値解析する上で欠かせません。
本記事では、Pythonにおける非数について、詳しくご説明します。
非数
Pythonでは、異常データを表現する浮動小数点数型オブジェクトとして、非数「nan」(not a number)が存在しています。
#input
nan = float("nan")
print(nan)
#output
nan
nanを使用した演算は、常にnanの結果となります。(複素数は虚数が残ります。)
演算例を以下にご紹介します。
#input
nan = float("nan")
print("nan + 1=",nan+1)
print("nan - 1=",nan-1)
print("nan x 2=",nan*2)
print("nan / 2=",nan/2)
print("nan x nan=",nan*nan)
print("nan + 5 + 5j=",nan+5+5j)
#output
nan + 1= nan
nan - 1= nan
nan x 2= nan
nan / 2= nan
nan x nan= nan
nan + 5 + 5j= (nan+5j)
math.nan
mathモジュールのmath.nanは、「nan」を出力します。
#input
import math
x = math.nan
print("math.nan=",x)
#output
math.nan= nan
math.isnan()
mathモジュールのmath.isnan()は、引数がnanの場合はTrueを、nan以外の場合はFalseを出力します。
#input
import math
x = math.inf
a1 = math.isnan(x+x)
a2 = math.isnan(x-x)
print("inf + inf is nan:",a1)
print("inf - inf is nan:",a2)
#output
inf + inf is nan: False
inf - inf is nan: True
numpy.nan
NumPyのnumpy.nanも「nan」を出力します。
#input
import numpy as np
print("inf/inf=",np.inf/np.inf)
print("np.nan=",np.nan)
#output
inf/inf= nan
np.nan= nan
numpy.isnan()
NumPyのnumpy.isnan()は、引数が非数の場合はTrueを、非数でない場合はFalseを出力します。
#input
import numpy as np
x = np.inf
a1 = np.isnan(x+x)
a2 = np.isnan(x-x)
print("inf + inf is nan:",a1)
print("inf - inf is nan:",a2)
#output
inf + inf is nan: False
inf - inf is nan: True
まとめ
この記事では、Pythonにおける非数について、ご説明しました。
本記事を参考に、ぜひ試してみて下さい。
参考
Python学習用おすすめ教材
Pythonの基本を学びたい方向け
リンク
統計学基礎を学びたい方向け
リンク
Pythonの統計解析を学びたい方向け
リンク
おすすめプログラミングスクール
Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。
私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。
現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。
無料体験ができますので、まずは試してみてください!
\まずは無料体験!/
スポンサーリンク