In diesem Tutorial lernen Sie die Verwendung NumPy Linspace() um in Python ein Array aus gleichmäßig verteilten Zahlen zu erstellen.
Sie lernen die Syntax von NumPy kennen linspace()
, gefolgt von Beispielen, die Ihnen helfen, die Verwendung zu verstehen.
Hinweis: Um diesem Tutorial folgen zu können, müssen Sie Python und NumPy installiert haben.
Du hast NumPy noch nicht? Wir haben für Sie eine kurze Installationsanleitung zusammengestellt.
Lasst uns beginnen!
Install and Import NumPy
Bevor Sie mit dem Tutorial beginnen, lassen Sie uns schnell die Schritte zum Installieren der NumPy-Bibliothek durchgehen.
⏩ Wenn Sie NumPy bereits installiert haben, können Sie gerne zum nächsten Abschnitt springen.
- Wenn Sie mit Google Colab– ein Cloud-basiertes Jupyter Notizbuch Umgebung können Sie NumPy importieren und sofort mit dem Programmieren beginnen. (empfohlen für dieses Tutorial ✅)
- Wenn Sie eine lokale Arbeitsumgebung einrichten möchten, empfehle ich die Installation der Anaconda-Distribution von Python. Anaconda wird mit mehreren nützlichen vorinstallierten Paketen geliefert. Sie können das Installationsprogramm für Ihr Betriebssystem herunterladen. Der Einrichtungsvorgang dauert nur wenige Minuten.⌛
- Wenn Sie Python bereits auf Ihrem Computer installiert haben, können Sie trotzdem die Anaconda-Distribution installieren. Sie können Conda oder Pip verwenden, um Pakete zu installieren und zu verwalten. Sie können einen der folgenden Befehle von der Anaconda-Eingabeaufforderung ausführen, um NumPy zu installieren.
# Install NumPy using conda
conda install numpy
# Install NumPy using pip
pip install numpy
Als nächsten Schritt importieren numpy
unter dem Pseudonym np
indem Sie den folgenden Befehl ausführen. Dadurch können Sie NumPy als referenzieren np
– ohne abtippen zu müssen numpy
jedes Mal, wenn Sie auf ein Element im Modul zugreifen.
import numpy as np
In Zukunft verwenden wir die Punktnotation, um auf alle Funktionen in der NumPy-Bibliothek wie folgt zuzugreifen: np.<func-name>
.
The Case for Evenly Spaced Numbers
Wenn Sie mit arbeiten NumPy-Arrays, gibt es Zeiten, in denen Sie ein Array von gleichmäßig verteilten Zahlen in einem Intervall erstellen müssen.
Bevor wir weitermachen, lassen Sie uns schnell eine andere ähnliche Funktion durchgehen np.arange()
.
NumPy linspace() vs. NumPy arange()
Wenn Sie NumPy zuvor verwendet haben, haben Sie wahrscheinlich verwendet np.arange()
um ein Array von Zahlen innerhalb eines bestimmten Bereichs zu erstellen.
Du weißt, dass
np.arange(start, stop, step)
gibt ein Array von Zahlen zurückstart
bis, aber nicht inklusivestop
, in Schritten vonstep
; die Standardschrittweite ist 1.
Der Wert von Schritt vielleicht nicht immer offensichtlich. Mal sehen, warum das so ist.
Wenn Sie beispielsweise 4 gleichmäßig verteilte Zahlen zwischen 0 und 1 benötigen, wissen Sie, dass die Schrittweite 0.25 betragen muss. Aber wenn Sie verwenden np.arange()
, enthält es nicht den Stoppwert 1. Sie müssen also ein Intervall auswählen, das über den Stoppwert hinausgeht.
Das folgende Bild veranschaulicht einige weitere Beispiele, bei denen Sie eine bestimmte Anzahl von gleichmäßig verteilten Punkten im Intervall [a, b] benötigen.

Unser erstes Beispiel mit 4 gleichmäßig verteilten Punkten in [0,1] war einfach genug. Sie wissen, dass die Schrittweite zwischen den Punkten 0.25 betragen sollte.
Angenommen, Sie haben ein etwas komplizierteres Beispiel, bei dem Sie 7 gleichmäßig verteilte Punkte zwischen 1 und 33 auflisten müssten. Hier ist die Schrittgröße möglicherweise nicht sofort sehr klar. Sie können den Wert jedoch manuell berechnen step
in diesem Fall.
Aber, np.linspace()
ist hier, um es Ihnen noch einfacher zu machen! 😄

Beim Benutzen np.linspace()
, müssen Sie nur die Anzahl der Punkte im Intervall angeben – ohne sich Gedanken über die Schrittweite machen zu müssen. Und Sie erhalten das gewünschte Array zurück.
Lassen Sie uns mit dieser Motivation fortfahren, die Syntax von NumPy zu lernen linspace()
im nächsten Abschnitt.
Syntax of NumPy linspace()
Die Syntax für die Verwendung von NumPy linspace()
wird unten gezeigt:
np.linspace(start, stop, num, endpoint, retstep, dtype, axis)
Am Anfang mag die obige Syntax mit vielen Parametern sehr kompliziert erscheinen.
Die meisten sind es jedoch optional Parameter, und wir werden in nur wenigen Minuten zu einer viel einfacheren Syntax kommen.
Beginnen wir nun damit, die obige Syntax zu analysieren:
start
undstop
sind die Start- bzw. Endpunkte des Intervalls. Sowohl start als auch stop können Skalare oder Arrays sein. Wir beschränken uns in diesem Tutorial auf skalare Start- und Endwerte.num
ist die Anzahl der gleichmäßig verteilten Punkte. Und es ist ein optionaler Parameter mit einem Standardwert von 50.endpoint
ist ebenfalls ein optionaler Parameter, der entweder True oder False sein kann.- Der Standardwert ist True, was bedeutet, dass der Endpunkt standardmäßig in das Intervall eingeschlossen wird. Sie können es jedoch auf False setzen, um den Endpunkt auszuschließen.
retstep
ist noch ein weiterer optionaler Parameter, der die booleschen Werte True oder False annimmt. Wenn es auf True gesetzt ist, wird der Schrittwert zurückgegeben.dtype
ist der Datentyp der Zahlen im Array. Der Typ wird normalerweise als Float abgeleitet und muss nicht explizit angegeben werden.axis
ist ein weiterer optionaler Parameter, der die Achse angibt, entlang der die Zahlen gespeichert werden sollen. Und das ist nur relevant, wenn diestart
undstop
Werte sind selbst Arrays.
▶️ Also was macht np.linspace()
Rückkehr?
Es gibt ein N-dimensionales Array von gleichmäßig verteilten Zahlen zurück. Und wenn der Parameter retstep
eingestellt ist True
, es gibt auch die Schrittweite zurück.
Basierend auf der bisherigen Diskussion ist hier eine vereinfachte Syntax zu verwenden np.linspace()
:
np.linspace(start, stop, num)
Die obige Codezeile gibt ein Array von zurück
num
gleichmäßig verteilte Zahlen im Intervall[start, stop]
.
Nachdem Sie nun die Syntax kennen, beginnen wir mit der Codierung von Beispielen.
How to Create Evenly Spaced Arrays with NumPy linspace()
# 1. Als erstes Beispiel erstellen wir ein Array aus 20 gleichmäßig verteilten Zahlen im Intervall [1, 5].
Sie können die Werte von angeben start
, stop
und num
als Schlüsselwortargumente. Dies wird in der folgenden Codezelle angezeigt:
import numpy as np
arr1 = np.linspace(start = 1,stop = 5,num = 20)
print(arr1)
# Output:
[1. 1.21052632 1.42105263 1.63157895 1.84210526 2.05263158
2.26315789 2.47368421 2.68421053 2.89473684 3.10526316 3.31578947
3.52631579 3.73684211 3.94736842 4.15789474 4.36842105 4.57894737
4.78947368 5. ]
Beachten Sie, wie die Zahlen im Array bei 1 beginnen und bei 5 enden – einschließlich der beiden Endpunkte. Beachten Sie auch, wie die Zahlen einschließlich der Punkte 1 und 5 dargestellt werden float
im zurückgegebenen Array.
# 2. Im vorherigen Beispiel hatten Sie die Werte für übergeben start
, stop
und num
as Keyword-Argumente. Wenn Sie die Argumente in der richtigen Reihenfolge übergeben, können Sie sie genauso gut verwenden Positionsargumente mit nur den Werten, wie unten gezeigt.
import numpy as np
arr2 = np.linspace(1,5,20)
print(arr2)
# Output:
[1. 1.21052632 1.42105263 1.63157895 1.84210526 2.05263158
2.26315789 2.47368421 2.68421053 2.89473684 3.10526316 3.31578947
3.52631579 3.73684211 3.94736842 4.15789474 4.36842105 4.57894737
4.78947368 5. ]
# 3. Lassen Sie uns nun ein weiteres Array erstellen, in dem wir festgelegt haben retstep
zu True
.
Das bedeutet, dass die Funktion jetzt sowohl das Array als auch den Schritt zurückgibt. Und wir können sie in zwei Variablen entpacken arr3
: das Array und step_size
: die zurückgegebene Schrittweite.
Die folgende Codezelle erklärt, wie Sie dies tun können.
import numpy as np
arr3, step_size = np.linspace(1,5,20,retstep = True)
print(arr3)
# Output:
[1. 1.21052632 1.42105263 1.63157895 1.84210526 2.05263158
2.26315789 2.47368421 2.68421053 2.89473684 3.10526316 3.31578947
3.52631579 3.73684211 3.94736842 4.15789474 4.36842105 4.57894737
4.78947368 5. ]
# Output:
print(step_size)
0.21052631578947367
# 4. Lassen Sie uns als letztes Beispiel festlegen endpoint
zu False
, und prüfen Sie, was passiert.
import numpy as np
arr4 = np.linspace(1,5,20,endpoint = False)
print(arr4)
# Output:
[1. 1.2 1.4 1.6 1.8 2. 2.2 2.4 2.6 2.8 3. 3.2 3.4 3.6 3.8
4. 4.2 4.4 4.6 4.8]
Im zurückgegebenen Array sehen Sie, dass 1 enthalten ist, während 5 nicht enthalten ist. Und der letzte Wert im Array ist zufällig 4.8, aber wir haben immer noch 20 Zahlen.
Bisher haben wir nur Arrays mit gleichmäßig verteilten Zahlen generiert. Lassen Sie uns im nächsten Abschnitt diese Zahlen visualisieren, indem wir sie grafisch darstellen.
How to Plot Evenly Spaced Numbers in an Interval
In diesem Abschnitt wählen wir [10,15] als interessierendes Intervall. Und dann verwenden np.linspace()
um zwei Arrays mit jeweils 8 bzw. 12 Punkten zu erzeugen.
Nachdem dies abgeschlossen ist, können wir die Plotfunktion von verwenden matplotlib
Bibliothek, um sie zu plotten.
Zur Verdeutlichung klemmen wir die beiden Arrays von N1 = 8 und N2 = 12 gleichmäßig beabstandete Punkte an verschiedenen Positionen entlang der y-Achse.
Das folgende Code-Snippet demonstriert dies.
import numpy as np
import matplotlib.pyplot as plt
N1 = 8
N2 = 12
a = 10
b = 15
y1 = np.zeros(N1)
y2 = np.zeros(N2)
x1 = np.linspace(a, b, N1)
x2 = np.linspace(a, b, N2)
plt.plot(x1, y1-0.5, 'o')
plt.plot(x2, y2 + 0.5, 'o')
plt.ylim([-1, 1])
plt.title(f'Evenly Spaced Numbers in the Interval [{a},{b}]')
plt.xlabel('Interval')
plt.show()

Das Generieren gleichmäßig verteilter Punkte kann bei der Arbeit mit mathematischen Funktionen hilfreich sein. Das erfahren wir im nächsten Abschnitt.
How to Use NumPy linspace() with Math Functions
Nachdem Sie mithilfe von ein Array aus gleichmäßig verteilten Zahlen generiert haben np.linspace()
, können Sie die Werte mathematischer Funktionen im Intervall berechnen.
In der Codezelle unten erzeugen Sie zunächst 50 gleichmäßig verteilte Punkte im Intervall 0 bis 2π. Und dann das Array erstellen y
Verwendung von np.sin()
auf dem Array x
. Beachten Sie, dass Sie die überspringen können num
Parameter, da der Standardwert 50 ist. Wir werden ihn weiterhin explizit verwenden.
Als nächsten Schritt können Sie die Sinusfunktion im Intervall [0, 2π] zeichnen. Dazu können Sie verwenden Matplotlib, wie im vorherigen Beispiel. Insbesondere die plot()
Funktion in matplotlib.pytplot
wird verwendet, um ein Liniendiagramm zu erstellen.
import numpy as np
import matplotlib.pyplot as plt
N = 50
a = 0.0
b = 2*np.pi
x = np.linspace(a, b, N)
y = np.sin(x)
plt.plot(x, y, marker = "o")
plt.ylim([-1, 1])
plt.title(f'y = sin(x)')
plt.xlabel('x ---->')
plt.show()

Führen Sie nun den obigen Code durch Einstellung aus N
gleich 10. Sie erhalten den Plot wie in der Abbildung unten gezeigt.

Und Sie können sehen, dass der Plot nicht sehr glatt ist – da Sie nur 10 Punkte im Intervall ausgewählt haben.
Im Allgemeinen gilt: Je größer die Anzahl der Punkte, die Sie berücksichtigen, desto glatter wird die Darstellung der Funktion.
Fazit
Hier ist eine Zusammenfassung dessen, was wir gelernt haben.
- np.linspace(start, stop, num) gibt ein Array von zurück num gleichmäßig verteilte Zahlen im Intervall [Start stop].
- Legen Sie den optionalen Parameter fest Endpunkt zu falsch ausschließen halt, und stellen Sie das Intervall auf ein [Start stop).
- Hier, Schritt zurück zu Wahre optional, um die Schrittweite zu erhalten.
- Generieren Sie gleichmäßig verteilte Arrays mit np.linspace(), und verwenden Sie dann das Array mit mathematischen Funktionen.
Ich hoffe du verstehst jetzt wie np.linspace() funktioniert. Sie können die obigen Beispiele im Jupyter-Notebook ausführen. Sehen Sie sich unseren Leitfaden an Jupyter NotizbuchOder andere Jupyter-Alternativen Sie können überlegen.
Bis bald in einem weiteren Python-Tutorial. Bis dahin weiter programmieren!😀