Anstatt direkt einen Dezimalschritt zu verwenden, ist es viel sicherer, dies in Form der gewünschten Punktzahl auszudrücken. Andernfalls ist es wahrscheinlich, dass ein Fließkomma-Rundungsfehler zu einem falschen Ergebnis führt.
Sie können die linspace Funktion aus der NumPy Bibliothek (die nicht Teil der Standardbibliothek ist, aber relativ leicht zu bekommen ist). linspace
nimmt eine Anzahl von Punkten an, die zurückgegeben werden sollen, und lässt Sie außerdem angeben, ob der rechte Endpunkt einbezogen werden soll oder nicht:
>>> np.linspace(0,1,11)
array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])
>>> np.linspace(0,1,10,endpoint=False)
array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
Wenn Sie wirklich einen Gleitkomma-Schrittwert verwenden wollen, können Sie mit numpy.arange
.
>>> import numpy as np
>>> np.arange(0.0, 1.0, 0.1)
array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
Fließkomma-Rundungsfehler sera verursachen jedoch Probleme. Hier ist ein einfacher Fall, bei dem Rundungsfehler auftreten arange
ein Array der Länge 4 zu erzeugen, obwohl es nur 3 Zahlen erzeugen sollte:
>>> numpy.arange(1, 1.3, 0.1)
array([1. , 1.1, 1.2, 1.3])