Kurs
NumPy ist ein unverzichtbares Paket im Python-Data-Science-Ökosystem, das eine Vielzahl von Funktionen zur effizienten Manipulation numerischer Daten bietet. Die Funktion linspace()
wird häufig verwendet, um gleichmäßig verteilte Werte über ein bestimmtes Intervall zu generieren. Das macht sie zu einem nützlichen Werkzeug für Aufgaben, die präzise numerische Bereiche erfordern, wie z. B. Datenvisualisierung und mathematische Modellierung. In diesem Lernprogramm zeige ich dir, wie du die Funktion linspace()
nutzen kannst.
Die kurze Antwort: Wie zu verwenden np.linspace()
Wenn du es eilig hast, findest du hier die schnellste Erklärung der Funktion linspace()
. Die Funktion linspace()
von NumPy erzeugt ein Array aus gleichmäßig verteilten Zahlen über ein bestimmtes Intervall. Hier erstellen wir zum Beispiel ein Array, das bei 0
beginnt und bei 100
endet, über ein Intervall von 5 Zahlen. Wie zu erwarten, gibt sie ein Array mit [0, 25, 75, 100]
zurück.
import numpy as np
# Basic usage of linspace to create an array from 0 to 100 with 5 elements
linspace_example = np.linspace(0, 100.0, 5)
linspace_example # Return example
# Output: array([ 0., 25., 50., 75., 100.])
Warum sollte man NumPy's linspace()
Funktion?
Die Funktion linspace()
ist eine einfache und effiziente Methode zur Erzeugung von Werten mit linearen Abständen. Sie bietet eine nützliche Lösung für eine Vielzahl von Szenarien, in denen bestimmte Zahlenbereiche benötigt werden, z. B. bei der Datenvisualisierung, Simulationen und sogar bei der Feinabstimmung von Algorithmen. Hier sind ein paar Beispiele, wo linspace()
eingesetzt werden kann:
- Aufgaben der Datenvisualisierung: Wenn du zum Beispiel ein Liniendiagramm erstellst, um die Flugbahn eines Satelliten über die Zeit darzustellen, kannst du mit linspace() die Zeitintervalle erzeugen, in denen die Positionsdaten abgetastet werden, um eine glatte und kontinuierliche Linie im Diagramm zu erhalten.
- Simulationen: Bei der Finanzmodellierung, um die Auswirkungen unterschiedlicher Zinssätze auf die Preisgestaltung von Anleihen zu bewerten, kann linspace() eine Reihe von Zinssätzen vom niedrigstmöglichen bis zum höchsten erwarteten Zinssatz erzeugen und so eine umfassende Analyse über das gesamte Spektrum hinweg ermöglichen.
- Wissenschaftliche Forschung: Bei der Untersuchung der Auswirkungen der globalen Erwärmung auf die Polkappen könnten Forscher mit linspace() eine Reihe von gleichmäßig verteilten Zeitintervallen über mehrere Jahrzehnte erstellen. In jedem Intervall konnten sie den durchschnittlichen globalen Temperaturanstieg und dessen Auswirkungen auf die Eisschmelzraten simulieren.
NumPy linspace()
Syntax und Verwendung mit Beispielen
Wie bereits erwähnt, erzeugt die Funktion linspace()
Werte in linearen Abständen, was für verschiedene numerische Berechnungen nützlich ist. Bevor wir zu den Beispielen kommen, schauen wir uns die verschiedenen Argumente an, mit denen du arbeiten kannst, wenn du linspace()
verwendest.
NumPy linspace()
Argumente
start
: Der Startwert der Sequenz.stop
: Der Endwert der Sequenz.num
(optional): Das angegebene Intervall. Der Standardwert ist 50 und muss nicht negativ sein.endpoint
(optional): WennTrue
(Standard), iststop
die letzte Probe. WennFalse
, wird der Stoppwert nicht in die vonlinspace()
erzeugte Sequenz aufgenommen. Das bedeutet, dass die Funktion gleichmäßig verteilte Stichproben innerhalb des Bereichs von Start bis kurz vor Stopp erstellt und den Stoppwert selbst aus der Sequenz ausschließt. Das kann nützlich sein, wenn du einen Bereich brauchst, der sich dem Endpunkt annähert, ihn aber nicht erreicht, was eine flexiblere Kontrolle über den erzeugten Wertebereich ermöglicht.retstep
(optional): WennTrue
, wird (samples
,step
) zurückgegeben, wobeistep
der Abstand zwischen den Proben ist.dtype
(optional): Der Typ des Ausgabe-Arrays. Wenn nichts angegeben wird, wirddtype
durch die Argumentestart
undstop
bestimmt.axis
(optional): Die Achse im Ergebnis, um die Stichproben zu speichern, nur wenn du mit mehrdimensionalen Arrays arbeitest.
Erstellen von 1-dimensionalen Arrays mit linspace()
Nachdem wir nun die Argumente in linspace()
genau verstanden haben, wollen wir uns ein paar Beispiele in Aktion ansehen!
Erstellen eines gleichmäßig verteilten 1-dimensionalen Arrays mit linspace()
In diesem Beispiel wird ein Array mit 7 gleichmäßig verteilten Zahlen zwischen 0 und 10 erstellt.
import numpy as np
# Create an array of 7 evenly spaced elements from 0 to 10
uniform_array = np.linspace(0, 10, num=7)
print("Uniform Array")
uniform_array
Uniform Array
array([ 0., 1.66666667, 3.33333333, 5., 6.66666667,8.33333333, 10.])
Das Ausschließen des Endpunkts in einem gleichmäßig verteilten 1-dimensionalen Array mit linspace()
In diesem Fall erzeugen wir ein Array mit 8 Zahlen zwischen 10 und 20, schließen aber den letzten Wert (20) aus dem Array aus, um das Argument endpoint
in Aktion zu zeigen.
import numpy as np
# Create an array of 8 elements from 10 to 20, excluding 20
exclude_final_array = np.linspace(10, 20, num=8, endpoint=False)
print("Array Excluding Final Value")
exclude_final_array
Array Excluding Final Value
array([10. , 11.25, 12.5 , 13.75, 15. , 16.25, 17.5 , 18.75])
Einschließlich der Schrittweite in einem gleichmäßig verteilten 1-dimensionalen Array mit linspace()
Hier erstellen wir ein Array mit 4 Elementen zwischen -5 und 5. Wir erfassen und zeigen auch die Schrittgröße an.
import numpy as np
# Create an array of 4 elements from -5 to 5 and capture the step size
step_array, step = np.linspace(-5, 5, num=4, retstep=True)
print("Array with Defined Step Size", step_array)
print("Step Size", step)
Array with Defined Step Size [-5. -1.66666667 1.66666667 5. ]
Step Size 3.3333333333333335
N-dimensionale Arrays erstellen mit linspace()
linspace()
ist auch nützlich, um mehrdimensionale Arrays zu erzeugen. Hier zeigen wir ein paar Beispiele dafür in Aktion.
Erzeugen eines 2-dimensionalen Arrays mit linspace()
Dieses Beispiel zeigt, wie man ein 2D-Array erzeugt, bei dem jede Zeile fließend vom Vektor [0, 10]
zu [5, 15]
übergeht und so einen Gradienteneffekt über 4 Stufen erzeugt.
import numpy as np
# Perform column-wise linear interpolation from [10, 20] to [15, 25] over 3 steps
column_interpolation_array = np.linspace([10, 20], [15, 25], num=3, axis=1)
print("Column-wise Interpolation Array:")
print(column_interpolation_array)
Column-wise Interpolation Array:
[[10. 12.5 15. ]
[20. 22.5 25. ]]
Alternativen zu NumPy linspace()
linspace()
ist zwar sehr nützlich, aber es gibt auch Alternativen, wie die arange()-Funktion von NumPy und Listenauflösungen.
Die Verwendung der NumPy arange()
Funktion
Die Funktion arange()
erzeugt Werte innerhalb eines bestimmten Intervalls. Im Gegensatz zu linspace()
wird der Abstand zwischen den Werten angegeben und nicht die Anzahl der Werte.
# Using arange to generate values from 0 to 10, spaced by 2
arange_example = np.arange(0, 10, 2)
arange_example
# Returns array([0, 2, 4, 6, 8])
# Using linspace() to generate values from 0 to 10, with interval set to 2
linspace_example = np.linspace(0, 10, 2)
linspace_example
# Returns array([0.,10.0])
Listenauflösungen verwenden
List Comprehensions bieten eine pythonischere Art, Listen zu erzeugen, auch wenn ihnen die Vorteile der Vektorisierung und die Flexibilität von NumPy linspace()
fehlen.
list_comp = [x for x in range(10)]
print(list_comp)
# Outputs [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Schlussgedanken
Die Funktion linspace()
von NumPy ist ein grundlegendes Werkzeug in der Datenwissenschaft, das Präzision und Flexibilität bei der Erzeugung numerischer Sequenzen bietet. Wenn du deine NumPy-Kenntnisse vertiefen möchtest, sieh dir dieses Tutorial zu NumPy-Arrays und diesen NumPy-Spickzettel an oder nimm an unserem Kurs Einführung in NumPy teil.

Adel ist Data Science Educator, Speaker und Evangelist bei DataCamp, wo er verschiedene Kurse und Live-Trainings zu Datenanalyse, maschinellem Lernen und Data Engineering veröffentlicht hat. Er setzt sich leidenschaftlich für die Verbreitung von Datenkenntnissen und Datenkompetenz in Organisationen und an der Schnittstelle zwischen Technologie und Gesellschaft ein. Er hat einen MSc in Data Science und Business Analytics. In seiner Freizeit ist er mit seinem Kater Louis unterwegs.