Range() での 10 進数のステップ値の使用には注意が必要です
Python の range() 関数は、一般的に、一連の処理を反復するために使用されます。数字。ただし、0.1 などの 10 進数のステップ値を使用しようとすると、ステップ引数をゼロにできないことを示すエラーが発生する場合があります。
10 進数のステップ値を直接使用しないでください
range() 内で 10 進数のステップ値を直接使用しないことを強くお勧めします。浮動小数点の丸め誤差は、特に小さなステップ値を使用する場合に不正確な結果を招く可能性があります。代わりに、反復間隔を必要なポイント数で表現することをお勧めします。
NumPy の linspace() 関数の使用
NumPy ライブラリは、linspace( ) 関数を使用すると、点の数と範囲の端点を指定できます。 linspace() を利用することで、次のことを実現できます。
import numpy as np # Get 11 equally spaced points between 0 and 1, including both endpoints np.linspace(0, 1, 11) # Get 10 equally spaced points between 0 and 1, excluding the right endpoint np.linspace(0, 1, 10, endpoint=False)
NumPy の arange() 関数の使用 (注意)
本当に float が必要な場合は、ポイントステップ値には、NumPy の arange() 関数を使用できます。ただし、次の例に示すように、浮動小数点の丸め誤差が依然として問題を引き起こす可能性があることに注意してください。
import numpy as np np.arange(0.0, 1.0, 0.1)
この例では、丸め誤差のため、arange() は代わりに長さ 4 の配列を生成します。予想される長さ 3 の配列。したがって、精度が重要な場合は、linspace() 関数を使用することが重要です。
以上がPython の `range()` で小数ステップを避けるべき理由と、同様の結果を達成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。