Python で浮動小数点の範囲を取得する
-
Python で
numpy.arange()メソッドを使用して浮動小数点数の範囲を取得する - Python のリスト内包表記を使用して浮動小数点数の範囲を取得する
- Python のジェネレーター内包表記を使用して浮動小数点数の範囲を取得する
- Python のジェネレーター関数を使用して浮動小数点数の範囲を取得する
-
Python で
numpy.linspace()メソッドを使用して浮動小数点数の範囲を取得する
このチュートリアルでは、Python で float 値のシーケンスを取得するためのさまざまなメソッドを調べます。ステップサイズが 0.1 の一連の数値が必要であると仮定しますが、問題は、range() 関数が float を入力として受け入れず、代わりに TypeError を返すことです。
以下で説明する方法を使用して、Python で均一なステップサイズの float 値のシーケンスを生成できます。
Python で numpy.arange() メソッドを使用して浮動小数点数の範囲を取得する
numpy.arange(start, stop, step) メソッドは、start および stop 値内の値のシーケンスを返します。ステップサイズは step 値と同じです。start および step 引数のデフォルト値は、それぞれ 0 および 1 です。
numpy.arange() メソッドを使用する利点は、float 値の範囲を生成できることです。ただし、これは Python のデフォルト関数ではなく、使用するには NumPy ライブラリが必要です。
以下のサンプルコードは、numpy.arange() メソッドを使用して、ステップサイズが 0.1 の 0 から 1 までの値のシーケンスを取得する方法を示しています。
import numpy as np
seq = np.arange(0, 1, 0.1)
print(seq)
出力:
[0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
Python のリスト内包表記を使用して浮動小数点数の範囲を取得する
リスト内包表記は、Python の既存のリストから新しいリストを作成するための構文上の方法です。range() メソッドによって返される値のシーケンスから新しいリストを作成することにより、float 値の範囲またはシーケンスを生成できます。
range() メソッドは整数のシーケンスしか生成できないため、シーケンスの各値を必要な浮動小数点値で乗算または除算して、目的のシーケンスを取得する必要があります。整数、つまり 3 に浮動小数点値 0.1 を掛けると 0.30000000000000004 が返されるため、浮動小数点値のシーケンスを生成するには、整数を 10 で除算することをお勧めします。
以下のサンプルコードは、リスト内包法を使用して Python で float 値の範囲またはシーケンスを取得する方法を示しています。
seq = [x / 10 for x in range(0, 10)]
print(seq)
出力:
[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]
Python のジェネレーター内包表記を使用して浮動小数点数の範囲を取得する
ジェネレーター内包表記は、Python で反復可能なジェネレーターオブジェクトを作成するリスト内包表記に似た構文アプローチです。next() メソッドを使用してジェネレーターから新しい値にアクセスするか、for ループを使用してシーケンス全体を反復処理できます。
以下のサンプルコードは、ジェネレーター内包表記を使用して Python で float の範囲を取得する方法を示しています。
seq = (x / 10 for x in range(0, 10))
for x in seq:
print(x, end=" ")
出力:
0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
Python のジェネレーター関数を使用して浮動小数点数の範囲を取得する
ジェネレーターの理解は Python でジェネレーターオブジェクトを取得するための簡潔で簡単な方法ですが、ジェネレーター関数は、start、stop、および step 値を使用して一連の float 値を取得するための再利用可能で優れた方法です。私たちの選択の。
以下のサンプルコードは、Python の range() 関数と同様に、yield キーワードを使用してジェネレーター関数を作成する方法を示しています。
def myrange(start, stop, step):
while start < stop:
yield start
start = start + step
seq = myrange(0.0, 1.0, 0.1)
for x in seq:
print(x)
Python で numpy.linspace() メソッドを使用して浮動小数点数の範囲を取得する
numpy.arange() メソッドのような numpy.linspace() メソッドは、start 値から stop 値までの値のシーケンスを返します。step 引数の代わりに、numpy.linspace() メソッドは num 引数を取ります。これは、start から stop 値までに生成する値の数を指定します。
したがって、値の数 num を numpy.linspace() メソッドに提供する必要があります。次の式は、start、stop、および step の値を使用して num の値を計算できます。
num = (stop - start)/step
以下のサンプルコードは、numpy.linspace() を使用して、step が 0.1 に等しい 0 から 1 までのフロートの範囲を生成する方法を示しています。必要なシーケンスの num 値は (0 - 1)/0.1 = 10 になります。
seq = np.linspace(0, 1, 10, endpoint=0)
print(seq)
出力:
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]
シーケンスはデフォルトで 0 から始まるため、endpoint 引数はシーケンスの最後の値を含めるかどうかを指定します。