ホームページ > バックエンド開発 > Python チュートリアル > Python の `range()` で小数ステップを避けるべき理由と、同様の結果を達成するにはどうすればよいですか?

Python の `range()` で小数ステップを避けるべき理由と、同様の結果を達成するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-12 20:56:10
オリジナル
465 人が閲覧しました

Why Should I Avoid Decimal Steps in Python's `range()` and How Can I Achieve Similar Results?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート