Erzeugen von gleichmäßig voneinander abgestuften Zahlen mit NumPy

Beginner

Einführung

In diesem Tutorial werden wir die Verwendung der numpy.linspace()-Funktion in der NumPy-Bibliothek behandeln. Diese Funktion wird verwendet, um gleichmäßig verteilte Zahlen über einem angegebenen Intervall zu generieren. Sie ähnelt der numpy.arange()-Funktion, der einzige Unterschied besteht darin, dass anstelle einer Schrittweite die Anzahl der gleichmäßig verteilten Werte zwischen dem Intervall mithilfe des num-Arguments angegeben wird.

Tipps für die virtuelle Maschine

Nachdem der Start der virtuellen Maschine abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Das Verständnis der Syntax

Die Syntax der numpy.linspace()-Funktion lautet wie folgt:

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

Die Funktion nimmt verschiedene Parameter entgegen:

  • start: Der Startwert des Intervalls.
  • stop: Der Endwert des Intervalls.
  • num: Die Anzahl der gleichmäßig verteilten Stichproben über dem zu generierenden Intervall. Der Standardwert ist 50.
  • endpoint: Ein boolescher Wert, der angibt, ob der Endpunkt des Intervalls enthalten sein soll oder nicht. Wenn True, dann wird der Endpunkt enthalten. False, dann wird er ausgeschlossen. Der Standardwert ist True.
  • retstep: Ein boolescher Wert, der angibt, ob der Schrittwert, d.h. der Abstand zwischen aufeinanderfolgenden Zahlen, zurückgegeben werden soll. Der Standardwert ist False.
  • dtype: Der Datentyp der Array-Elemente.

Erzeugen eines Arrays mit linspace()

Um ein Array mit numpy.linspace() zu erzeugen, müssen Sie einfach den Startwert, den Endwert und die Anzahl der Stichproben angeben, die Sie möchten. Hier ist ein Beispiel:

import numpy as np

a = np.linspace(0, 10, num=11)
print(a)

Die Ausgabe dieses Codes wird wie folgt aussehen:

[ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]

Das Ausschließen des Endpunkts

Um den Endpunkt auszuschließen, legen wir einfach den Parameter endpoint auf False fest. Hier ist ein Beispiel:

b = np.linspace(0, 10, num=10, endpoint=False)
print(b)

Die Ausgabe dieses Codes wird wie folgt aussehen:

[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]

Das Zurückgeben des Schrittwerts

Um den Schritt- oder Abstands-Wert zwischen den aufeinanderfolgenden Zahlen, die von linspace() generiert werden, zurückzugeben, legen Sie den Parameter retstep auf True fest. Hier ist ein Beispiel:

c, step = np.linspace(0, 10, num=11, retstep=True)
print(c)
print(step)

Die Ausgabe dieses Codes wird wie folgt aussehen:

[ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]
1.0

Diagramm erstellen mit Linspace()

Wir können linspace() zusammen mit matplotlib verwenden, um Graphen zu zeichnen. Hier ist ein Beispiel:

import matplotlib.pyplot as plt

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)

plt.plot(x, y)
plt.show()

Die Ausgabe dieses Codes ist ein einfacher Sinuswellen-Graph.

Verwendung von nicht skalaren Werten

Ab den neueren Versionen von NumPy unterstützt linspace() nicht skalare Werte für die Start- und Endparameter. Hier ist ein Beispiel:

start = np.array([0, 1, 2])
end = np.array([6, 7, 8])
d = np.linspace(start, end, num=5, axis=1)
print(d)

Die Ausgabe dieses Codes ist:

[[0.  1.5 3.  4.5 6. ]
 [1.  2.5 4.  5.5 7. ]
 [2.  3.5 5.  6.5 8. ]]

Zusammenfassung

In diesem Tutorial haben wir die Verwendung der numpy.linspace()-Funktion in der NumPy-Bibliothek demonstriert. Wir haben die Syntax, die verschiedenen Parameter und verschiedene Beispiele behandelt. Mit diesen Kenntnissen können Sie jetzt gleichmäßig voneinander abgestufte Arrays schnell und effizient generieren.