【Python入門】無限大|infを使用した演算方法を学ぶ

無限大|infを使用した演算方法を学ぶ_アイキャッチ プログラミング

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

levtech-ad
スポンサーリンク

「無限大」は、Pythonで数値解析する上で欠かせない特殊データです。

本記事では、Pythonを使用した無限大の演算方法について、詳しくご説明します。

こんな人に読んでほしい
  • Python初心者の人
  • Pythonにおける無限大の演算方法について学びたい人
levtech-ad

無限大

Pythonでは、浮動小数点数を出力するfloat()関数の引数として、「inf」や「infinity」を指定すると、正の無限大(\(+\infty\))を意味する「inf」が出力されます。

また「-inf」や「-infinity」を指定すると、負の無限大(\(-\infty\))を意味する「-inf」が出力されます。

#input
inf_positive = float("inf")
inf_negative = float("-inf")

print(inf_positive)
print(inf_negative)

infinity_positive = float("infinity")
infinity_negative = float("-infinity")

print(infinity_positive)
print(infinity_negative)
#output
inf
-inf
inf 
-inf

infを使用した演算例を以下にご紹介します。

#input
inf_p = float("inf")
inf_n = float("-inf")

print("+inf+1=",inf_p+1)
print("-inf-1=",inf_n-1)
print("+infx2=",inf_p*2)
print("+infx+inf=",inf_p*inf_p)
print("-infx-inf=",inf_n*inf_n)
print("+inf+5+5j=",inf_p+5+5j)
print("+inf-inf=",inf_p+inf_n)
#output
+inf+1= inf
-inf-1= -inf
+infx2= inf
+infx+inf= inf
-infx-inf= inf
+inf+5+5j= (inf+5j)
+inf-inf= nan

基本的には数学演算通りですが、複素数は虚数が残ります。

また無限大から無限大を引くと非数「nan」が出力されます。

math.inf

mathモジュールのmath.infは、正の無限大(\(+\infty\))を意味する「inf」を出力します。

#input
import math

x = math.inf

print("math.inf=",x)
#output
math.inf= inf

math.isinf()

mathモジュールのmath.isinf()は、引数が無限大(infあるいは-inf)の場合はTrueを、無限大でない場合はFalseを出力します。

#input
import math

x = math.inf
a1 = math.isinf(10**8)
a2 = math.isinf(x-10**8)

print("10**8 is inf:",a1)
print("inf-10**8 is inf:",a2)
#output
10**8 is inf: False
inf-10**8 is inf: True

math.isfinite()

mathモジュールのmath.isfinite()は、引数が有限数の場合はTrueを、それ以外(inf、-inf、nan等)の場合はFalseを出力します。

#input
import math

x = math.inf
a1 = math.isfinite(10**8)
a2 = math.isfinite(x-10**8)

print("10**8 is finite:",a1)
print("inf-10**8 is finite:",a2)
#output
10**8 is finite: True
inf-10**8 is finite: False

numpy.inf

NumPyのnumpy.infも正の無限大(\(+\infty\))を意味する「inf」を出力します。

#input
import numpy as np

x = np.inf

print("np.inf=",x)
#output
np.inf= inf

numpy.NINF

NumPyのnumpy.NINFは、負の無限大(\(-\infty\))を意味する「-inf」を出力します。

#input
import numpy as np

x = np.NINF

print("np.NINF=",x)
#output
np.NINF= -inf

numpy.isinf()

NumPyのnumpy.isinf()は、引数が無限大(infあるいは-inf)の場合はTrueを、無限大でない場合はFalseを出力します。

#input
import numpy as np

x = np.inf
a1 = np.isinf(10**8)
a2 = np.isinf(x-10**8)

print("10**8 is inf:",a1)
print("inf-10**8 is inf:",a2)
#output
10**8 is inf: False
inf-10**8 is inf: True

numpy.isposinf()

NumPyのnumpy.isposinf()は、引数が正の無限大(inf)の場合はTrueを、それ以外の場合はFalseを出力します。

#input
import numpy as np

x = np.array([np.inf,np.NINF,np.inf+np.NINF])

print(np.isposinf(x))
#output
[ True False False]

numpy.isneginf()

NumPyのnumpy.isneginf()は、引数が負の無限大(-inf)の場合はTrueを、それ以外の場合はFalseを出力します。

#input
import numpy as np

x = np.array([np.inf,np.NINF,np.inf+np.NINF])

print(np.isneginf(x))
#output
[False  True False]

numpy.isfinite()

NumPyのnumpy.isfinite()は、引数が有限数の場合はTrueを、それ以外(inf、-inf、nan等)の場合はFalseを出力します。

#input
import numpy as np

x = np.array([np.inf,np.NINF,np.inf+np.NINF,10**8])

print(np.isfinite(x))
#output
[False False False  True]

sympy.oo

SymPyのsympy.ooは無限大(\(\infty\))を表現します。

#input
from sympy import oo

print("oo={}".format(oo))
print("-oo={}".format(-oo))
print("oo+oo={}".format(oo+oo))
print("oo-oo={}".format(oo-oo))
print("oo*oo={}".format(oo*oo))
print("oo/oo={}".format(oo/oo))
#output
oo=oo
-oo=-oo
oo+oo=oo
oo-oo=nan
oo*oo=oo
oo/oo=nan

まとめ

この記事では、Pythonを使用した無限大の演算方法について、ご説明しました。

本記事を参考に、ぜひ試してみて下さい。

参考

Python学習用おすすめ教材

Pythonの基本を学びたい方向け

統計学基礎を学びたい方向け

Pythonの統計解析を学びたい方向け

おすすめプログラミングスクール

Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。

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

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

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

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