Dezimalschrittwerte in Range() mit Vorsicht verwenden
Die Funktion „range()“ in Python wird häufig zum Durchlaufen einer Folge von verwendet Zahlen. Wenn Sie jedoch versuchen, einen dezimalen Schrittwert wie 0,1 zu verwenden, wird möglicherweise eine Fehlermeldung angezeigt, die darauf hinweist, dass das Schrittargument nicht Null sein darf.
Vermeiden Sie die direkte Verwendung von Dezimalschrittwerten
Es wird dringend davon abgeraten, dezimale Schrittwerte direkt in range() zu verwenden. Gleitkomma-Rundungsfehler können insbesondere bei kleinen Schrittwerten zu falschen Ergebnissen führen. Stattdessen wird empfohlen, das Iterationsintervall in Form der gewünschten Anzahl von Punkten auszudrücken.
Verwendung der linspace()-Funktion von NumPy
Die NumPy-Bibliothek stellt den linspace( )-Funktion, mit der Sie eine Anzahl von Punkten und die Endpunkte des Bereichs angeben können. Durch die Verwendung von linspace() können Sie Folgendes erreichen:
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)
Verwenden der arange()-Funktion von NumPy (mit Vorsicht)
Wenn Sie wirklich eine Floating- Um den Punktschrittwert zu ermitteln, kann die Funktion arange() von NumPy verwendet werden. Beachten Sie jedoch, dass Gleitkomma-Rundungsfehler immer noch Probleme verursachen können, wie im folgenden Beispiel gezeigt:
import numpy as np np.arange(0.0, 1.0, 0.1)
In diesem Fall erzeugt arange() aufgrund von Rundungsfehlern stattdessen ein Array der Länge 4 des erwarteten Arrays der Länge 3. Daher ist es wichtig, die Funktion linspace() zu verwenden, wenn es auf Präzision ankommt.
Das obige ist der detaillierte Inhalt vonWarum sollte ich Dezimalschritte in Pythons „range()' vermeiden und wie kann ich ähnliche Ergebnisse erzielen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!