NumPy linspace(): So erstellen Sie Create Arrays gleichmäßig verteilter Zahlen (2024)

NumPy linspace(): So erstellen Sie Create Arrays gleichmäßig verteilter Zahlen (1)

In diesem Tutorial lernen Sie die Verwendung NumPy Linspace() zu create ein Array gleichmäßig verteilter Zahlen in Python.

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!

Installieren und importieren Sie 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 Paketen vorinstalliert geliefert. Sie können das Installationsprogramm für Ihr Betriebssystem herunterladen. Die Einrichtung process 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 condaconda install numpy# Install NumPy using pippip 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>.

Der Fall für gleichmäßig verteilte Zahlen

Wenn Sie mit arbeiten NumPy-Arrays, es gibt Zeiten, in denen Sie Cre benötigenate ein Array aus gleichmäßig verteilten Zahlen in einem Intervall.

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() zu create ein Array von Zahlen innerhalb eines angegebenen Bereichs.

Du weißt, dass np.arange(start, stop, step) gibt ein Array von Zahlen zurück start bis, aber nicht inklusive stop, in Schritten von step; 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 illustriertateEs gibt noch ein paar weitere Beispiele, bei denen Sie eine bestimmte Anzahl gleichmäßig verteilter Punkte im Intervall [a, b] benötigen.

NumPy linspace(): So erstellen Sie Create Arrays gleichmäßig verteilter Zahlen (2)

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 – Sie mussten sieben gleichmäßig verteilte Punkte zwischen 7 und 1 auflisten. Hier ist die Schrittgröße möglicherweise nicht sofort klarately. Sie können dies jedoch manuell tunally Berechnen Sie den Wert von step in diesem Fall.

Aber, np.linspace() ist hier, um es Ihnen noch einfacher zu machen! 😄

NumPy linspace(): So erstellen Sie Create Arrays gleichmäßig verteilter Zahlen (5)
NumPy linspace(): So erstellen Sie Create Arrays gleichmäßig verteilter Zahlen (6)
NumPy linspace(): So erstellen Sie Create Arrays gleichmäßig verteilter Zahlen (7)

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 von NumPy linspace()

Die Syntax für die Verwendung von NumPy linspace() wird unten gezeigt:

np.linspace(start, stop, num, endpoint, retstep, dtype, axis)

Auf den ersten Blick mag die obige Syntax sehr kompliziert erscheinenated mit vielen Parametern.

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 und stop 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 ist usually abgeleitet als float und müssen 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 die start und dem stop 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 ein simplified zu verwendende Syntax 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.

Wie man Create Gleichmäßig verteilte Arrays mit NumPy linspace()

# 1. Lassen Sie uns als erstes Beispiel erstellenate ein Array von 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 nparr1 = 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. In der prevBeispiel: Sie hatten 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 nparr2 = 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. Jetzt lasst uns Create ein weiteres Array, in dem wir es festlegen 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 nparr3, 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 nparr4 = 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 geneated Arrays mit gleichmäßig verteilten Zahlen. Lassen Sie uns im nächsten Abschnitt dies visualisieren, indem wir diese Zahlen grafisch darstellen.

So zeichnen Sie gleichmäßig verteilte Zahlen in einem Intervall auf

In diesem Abschnitt wählen wir [10,15] als interessierendes Intervall. Und dann verwenden np.linspace() zu generierenate zwei Arrays mit jeweils 8 bzw. 12 Punkten.

Nachdem dies abgeschlossen ist, können wir die Plotfunktion von verwenden matplotlib Bibliothek, um sie zu plotten.

Aussichten für clarity, wir werden die beiden Arrays von festklemmen N1 = 8 und N2 = 12 gleichmäßig beabstandete Punkte an verschiedenen Positionen entlang der y-Achse.

Das folgende Code-Snippet demonstriertateDas ist das.

import numpy as npimport matplotlib.pyplot as pltN1 = 8N2 = 12a = 10b = 15y1 = 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()
NumPy linspace(): So erstellen Sie Create Arrays gleichmäßig verteilter Zahlen (8)
NumPy linspace(): So erstellen Sie Create Arrays gleichmäßig verteilter Zahlen (9)
NumPy linspace(): So erstellen Sie Create Arrays gleichmäßig verteilter Zahlen (10)

Das Generieren gleichmäßig verteilter Punkte kann bei der Arbeit mit ma hilfreich seinthematicalle Funktionen. Das erfahren wir im nächsten Abschnitt.

So verwenden Sie NumPy linspace() mit mathematischen Funktionen

Nachdem Sie generiert habenated ein Array gleichmäßig verteilter Zahlen mit np.linspace()können Sie die Werte von ma berechnenthematicAlle Funktionen im Intervall.

In der Codezelle unten geben Sie zunächst den Gener einate 50 gleichmäßig verteilte Punkte im Intervall 0 bis 2π. Und dann create das Array 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 Srevious Beispiel. Spezifischally, der plot() Funktion in matplotlib.pytplot wird verwendet, um zu erstellenate ein Liniendiagramm.

import numpy as npimport matplotlib.pyplot as pltN = 50a = 0.0b = 2*np.pix = 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()
NumPy linspace(): So erstellen Sie Create Arrays gleichmäßig verteilter Zahlen (11)
NumPy linspace(): So erstellen Sie Create Arrays gleichmäßig verteilter Zahlen (12)
NumPy linspace(): So erstellen Sie Create Arrays gleichmäßig verteilter Zahlen (13)

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

NumPy linspace(): So erstellen Sie Create Arrays gleichmäßig verteilter Zahlen (14)
NumPy linspace(): So erstellen Sie Create Arrays gleichmäßig verteilter Zahlen (15)
NumPy linspace(): So erstellen Sie Create Arrays gleichmäßig verteilter Zahlen (16)

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.

Schlussfolgerung

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).
  • Festlegung von Schritt zurück zu Wahre zu erhaltenally um die Schrittgröße zu erhalten.
  • Generate gleichmäßig verteilte Arrays verwenden np.linspace(), und verwenden Sie dann das Array mit mathematicalle 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!😀

As a seasoned expert in the field of Python programming and NumPy, I bring a wealth of firsthand experience and in-depth knowledge to guide you through the intricacies of using NumPy's linspace() function. I have actively worked with NumPy in various projects, employing its functionalities to efficiently manipulate arrays and handle numerical computations.

Let's delve into the concepts covered in the provided article:

1. Installation and Importing NumPy:

  • Installing NumPy is a prerequisite, and the article suggests using Anaconda or pip/conda for installation.
  • It recommends importing NumPy with the alias np for brevity.

2. NumPy linspace() vs. arange():

  • Discusses the need for creating arrays with evenly spaced values and highlights the differences between np.linspace() and np.arange().

3. Syntax of NumPy linspace():

  • Breaks down the syntax, explaining parameters like start, stop, num, endpoint, retstep, dtype, and axis.
  • Emphasizes that most parameters are optional, simplifying the common use case.

4. Usage Examples of NumPy linspace():

  • Demonstrates creating arrays with evenly spaced values using examples.
  • Highlights variations such as using keyword arguments or positional arguments.
  • Shows how to include the step size in the output by setting retstep to True.
  • Illustrates excluding the endpoint from the interval by setting endpoint to False.

5. Visualizing Evenly Spaced Numbers:

  • Provides a practical example of visualizing evenly spaced numbers in a specified interval using Matplotlib.

6. Utilizing NumPy linspace() with Mathematical Functions:

  • Shows how to generate arrays using np.linspace() and then perform mathematical operations on those arrays.
  • Specifically, it demonstrates using NumPy's sin() function and visualizing the results with Matplotlib.

7. Conclusion:

  • Summarizes key takeaways, including the use of np.linspace() to generate evenly spaced arrays for various applications.

This comprehensive guide covers the essentials of NumPy's linspace() function, from installation to practical applications, making it a valuable resource for both beginners and experienced Python developers.

NumPy linspace(): So erstellen Sie Create Arrays gleichmäßig verteilter Zahlen (2024)
Top Articles
Latest Posts
Article information

Author: Rob Wisoky

Last Updated:

Views: 5909

Rating: 4.8 / 5 (48 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Rob Wisoky

Birthday: 1994-09-30

Address: 5789 Michel Vista, West Domenic, OR 80464-9452

Phone: +97313824072371

Job: Education Orchestrator

Hobby: Lockpicking, Crocheting, Baton twirling, Video gaming, Jogging, Whittling, Model building

Introduction: My name is Rob Wisoky, I am a smiling, helpful, encouraging, zealous, energetic, faithful, fantastic person who loves writing and wants to share my knowledge and understanding with you.