Direkt zum Inhalt

Wie man die NumPy-Funktion linspace() verwendet

In diesem schnellen und einfachen Tutorial lernst du, wie du die NumPy-Funktion linspace() verwendest.
Aktualisierte 15. Jan. 2025

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): Wenn True (Standard), ist stop die letzte Probe. Wenn False, wird der Stoppwert nicht in die von linspace() 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): Wenn True, wird (samples, step) zurückgegeben, wobei step der Abstand zwischen den Proben ist.
  • dtype (optional): Der Typ des Ausgabe-Arrays. Wenn nichts angegeben wird, wird dtype durch die Argumente start und stop 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 Nehme's photo
Author
Adel Nehme
LinkedIn

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.

Themen

Setze deine NumPy-Lernreise heute fort!

Kurs

Writing Efficient Python Code

4 Std.
138.7K
Learn to write efficient code that executes quickly and allocates resources skillfully to avoid unnecessary overhead.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

15 Min.

Der Blog

2022-2023 DataCamp Classrooms Jahresbericht

Zu Beginn des neuen Schuljahres ist DataCamp Classrooms motivierter denn je, das Lernen mit Daten zu demokratisieren. In den letzten 12 Monaten sind über 7.650 neue Klassenzimmer hinzugekommen.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

8 Min.

Der Blog

Q2 2023 DataCamp Donates Digest

DataCamp Donates hat im zweiten Quartal 2023 über 20.000 Stipendien an unsere gemeinnützigen Partner vergeben. Erfahre, wie fleißige benachteiligte Lernende diese Chancen in lebensverändernde berufliche Erfolge verwandelt haben.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

Der Blog

Top 30 Generative KI Interview Fragen und Antworten für 2024

Dieser Blog bietet eine umfassende Sammlung von Fragen und Antworten zu generativen KI-Interviews, die von grundlegenden Konzepten bis hin zu fortgeschrittenen Themen reichen.
Hesam Sheikh Hassani's photo

Hesam Sheikh Hassani

15 Min.

Mehr anzeigenMehr anzeigen