【Python入門】非数|nanの意味と生成原因を学ぶ

非数|nanの意味と生成原因を学ぶ_アイキャッチ プログラミング

※ 当サイトはアフィリエイト広告を利用しています。

levtech-ad
スポンサーリンク

特殊データである「非数」は、Pythonで数値解析する上で欠かせません。

本記事では、Pythonにおける非数について、詳しくご説明します。

こんな人に読んでほしい
  • Python初心者の人
  • Pythonにおける非数について学びたい人
levtech-ad

非数

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(テックアカデミー)がおすすめです。

私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。

現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。

無料体験ができますので、まずは試してみてください!

\まずは無料体験!/
スポンサーリンク
タイトルとURLをコピーしました