HOWTO · Python

Python で無限値を定義する

この説明で、Python の無限値とは何か、そしてなぜ無限値を使用するのかを学びます。 また、Python のさまざまな方法を使用して無限値を定義する方法も学びます。

この記事では、Python の無限値とは何か、そして無限値を使用する理由を学びます。 また、Python のさまざまな方法を使用して無限値を定義する方法も学習します。

Python で無限値を定義する従来の方法

無限と聞くと、終わりのないものがあると考える人がほとんどですが、Python では無限をどのように扱うのでしょうか? Python スクリプトに無限数を格納する必要があるとします。 次に、複数のファイルで番号を保存できますが、より大きな番号のファイルを保存できます。

Python 言語は動的であるため、複数のファイルに格納されている 999999999999 以上の数値では、Python で無限数を定義するには不十分です。

数学では、有限数と無限数を使用できます。 Python は、Math のように、特定の範囲内の有限数と無限数を定義できる機能をもたらします。 負の無限大と正の無限大を使用できます。

他のプログラミング言語では無限数を定義できません。 他のプログラミング言語では、特定の値のセットを定義できます。

無限大を定義するには、float("inf") を使用して正の無限数を定義し、負の無限数を定義するには float("-inf") を使用します。 次に、Python での動作を見ていきます。

変数 a に大きな数値を格納する値があり、要件で a 変数が float("inf") より大きいかどうかをチェックするとします。

>>> a=99999999999999999
>>> a_INF=float("inf")
>>> a_INF > a
True
>>> a_INF
inf

a_INFa よりも大きいことがわかります。これは無限数であるためです。追加のモジュールをインポートせずに無限数を定義する簡単な方法を次に示します。

負の無限数も定義できます。 以下に例を示します。

>>> Neg_INF=float("-inf")
>>> Neg_INF
-inf

Python で Math モジュールを使用して無限値を定義する

無限数を定義するもう 1つの機能は math.inf です。 math モジュールでは、inf は無限値が配置される変数です。

まず、それをインポートする必要があります。次に、math.inf を使用して変数を無限として宣言できます。 これを行う方法を見てみましょう。

>>> import math
>>> M_INF=math.inf
>>> M_INF
inf

math モジュールをインポートせずに正と負の無限大を定義する方法と同様に、math モジュールを使用して正または負の無限大を定義することもできます。 見てみましょう。

>>> M_NEG_INF=-math.inf
>>> M_NEG_INF
-inf

Python で Decimal() 関数を使用して無限値を定義する

無限数を定義するために Python で利用できる 3 番目の方法は、decimal モジュールを使用することです。 decimal モジュールは、もう 1つの新しいデータ型です。

彼らがこのデータ型を作成した理由は、浮動小数点数が正確ではなかったためです。 10 進数は浮動小数点数ですが、扱いが異なります。

decimal モジュールをインポートする際、Decimal() 関数を使用して、正または負の無限値を定義できます。

Decimal() 関数では、Infinity を文字列値として渡すことができますが、これは正の値になります。 マイナスを定義したい場合は、-Infinity のようにマイナス記号を含めます。

Decimal() 関数とその構文の使用方法を見てみましょう。 理解を深めるために、小さなコードで例を作成します。

まず、変数を使用してメモリに無限の数を格納できるように、decimal モジュールから Decimal 関数をインポートします。 見てみましょう。

>>> from decimal import Decimal
>>> INF_POS_VAL=Decimal('infinity')
>>> INF_Neg_VAL=Decimal('-infinity')
>>> print(INF_POS_VAL)
Infinity
>>> print(INF_Neg_VAL)
-Infinity

このようにして、無限の値を取得し、さまざまなプログラムでさまざまな目的に使用します。

Python で NumPy モジュールを使用して無限値を定義する

無限値を定義する最後の最も一般的な方法は、numpy モジュールを使用することです。 numpy モジュールは、numpy.inf を使用して無限値を定義する機能も提供します。

これは、math モジュールと同じように機能します。 モジュール名だけが変更されます。

見てみましょう。

>>> import numpy
>>> Num_Pos_INF=numpy.inf
>>> Num_Neg_INF=-numpy.inf
>>> print(Num_Pos_INF)
inf
>>> print(Num_Neg_INF)
-inf

科学計算を処理する別の Python スクリプトでは、値が無限かどうかを確認する必要があります。 これは、Python の isinf() メソッド を使用して確認できます。

通常は呼び出すことができませんが、isinf()math モジュールの関数であるため、math をインポートした後に呼び出すことができます。 isinf() 関数は true や false などのブール値を返すため、値が無限大かどうかを判断する値を入れます。

isinf() 関数を使用して整数または浮動小数点で作成された値を確認すると、これは有限値であるため、この関数は false を返します。

>>> import math
>>> val=999999999999
>>> math.isinf(val)
False

これはどのような場合に true を返しますか?

負または正の無限値を渡すと、true が返されます。 どちらの場合も、真の値が得られます。

>>> math.isinf(-numpy.inf)
True

このようにして、Python で大きい値と小さい値を定義できます。 詳しくはこちらをご覧ください。