So wenden Sie mit NumPy Padding auf Arrays anSo wenden Sie mit NumPy Padding auf Arrays an
Bild von kostenlospik

Padding ist der Vorgang, bei dem zusätzliche Elemente an den Rändern eines Arrays hinzugefügt werden. Das magazine einfach klingen, hat aber eine Vielzahl von Anwendungen, die die Funktionalität und Leistung Ihrer Datenverarbeitungsaufgaben erheblich verbessern können.

Angenommen, Sie arbeiten mit Bilddaten. Beim Anwenden von Filtern oder Durchführen von Faltungsoperationen können die Bildränder häufig problematisch sein, da nicht genügend benachbarte Pixel vorhanden sind, um die Operationen konsistent anzuwenden. Durch das Auffüllen des Bilds (Hinzufügen von Zeilen und Spalten von Pixeln um das Originalbild) wird sichergestellt, dass alle Pixel gleich behandelt werden, was zu einer genaueren und optisch ansprechenderen Ausgabe führt.

Sie fragen sich vielleicht, ob Padding auf die Bildverarbeitung beschränkt ist. Die Antwort lautet: Nein. Beim Deep Studying ist Padding bei der Arbeit mit Convolutional Neural Networks (CNNs) von entscheidender Bedeutung. Es ermöglicht Ihnen, die räumlichen Dimensionen Ihrer Daten durch aufeinanderfolgende Schichten des Netzwerks hindurch beizubehalten und verhindert, dass die Daten bei jedem Vorgang schrumpfen. Dies ist besonders wichtig, wenn die ursprünglichen Merkmale und die Struktur Ihrer Eingabedaten erhalten bleiben sollen.

Bei der Zeitreihenanalyse kann das Auffüllen dabei helfen, Sequenzen unterschiedlicher Länge auszurichten. Diese Ausrichtung ist wichtig, um Daten in maschinelle Lernmodelle einzuspeisen, bei denen häufig Konsistenz bei der Eingabegröße erforderlich ist.

In diesem Artikel erfahren Sie, wie Sie mit NumPy Padding auf Arrays anwenden, sowie die verschiedenen Padding-Typen und Greatest Practices bei der Verwendung von NumPy zum Padding von Arrays.

Numpy.pad

Der numpy.pad Die Funktion ist das bevorzugte Werkzeug in NumPy zum Hinzufügen von Padding zu Arrays. Die Syntax dieser Funktion ist unten dargestellt:

numpy.pad(Array, Pad-Breite, Modus=“Konstante“, **kwargs)

Wo:

  • Anordnung: Das Eingabearray, dem Sie eine Auffüllung hinzufügen möchten.
  • Padbreite: Dies ist die Anzahl der Werte, die an den Rändern jeder Achse aufgefüllt werden. Es gibt die Anzahl der Elemente an, die an jedem Ende der Array-Achsen hinzugefügt werden sollen. Es kann sich um eine einzelne Ganzzahl (gleiche Auffüllung für alle Achsen), ein Tupel aus zwei Ganzzahlen (unterschiedliche Auffüllung für jedes Ende der Achse) oder eine Folge solcher Tupel für unterschiedliche Achsen handeln.
  • Modus: Dies ist die Methode, die zum Auffüllen verwendet wird. Sie bestimmt die Artwork des anzuwendenden Auffüllens. Gängige Modi sind: Null, Kante, symmetrisch usw.
  • Abonnieren: Dies sind zusätzliche Schlüsselwortargumente, abhängig vom Modus.

Sehen wir uns ein Array-Beispiel an und schauen wir, wie wir mit NumPy Füllzeichen hinzufügen können. Der Einfachheit halber konzentrieren wir uns auf eine Artwork von Füllzeichen: Null-Füllzeichen, das am häufigsten vorkommt und am einfachsten zu handhaben ist.

Schritt 1: Erstellen des Arrays

Lassen Sie uns zunächst ein einfaches 2D-Array zum Arbeiten erstellen:

import numpy as np
# Create a 2D array
array = np.array(((1, 2), (3, 4)))
print("Authentic Array:")
print(array)

Ausgabe:

Authentic Array:
((1 2)
 (3 4))

Schritt 2: Null-Padding hinzufügen

Als nächstes fügen wir diesem Array Nullen hinzu. Wir verwenden die np.pad Funktion, um dies zu erreichen. Wir geben eine Füllbreite von 1 an und fügen eine Zeile/Spalte mit Nullen um das gesamte Array hinzu.

# Add zero padding
padded_array = np.pad(array, pad_width=1, mode="fixed", constant_values=0)
print("Padded Array with Zero Padding:")
print(padded_array)

Ausgabe:

Padded Array with Zero Padding:
((0 0 0 0)
 (0 1 2 0)
 (0 3 4 0)
 (0 0 0 0))

Erläuterung

  • Ursprüngliches Array: Unser Startarray ist ein einfaches 2×2-Array mit Werten ((1, 2), (3, 4)).
  • Null-Padding: Durch die Verwendung np.padfügen wir eine Schicht Nullen um das ursprüngliche Array hinzu. Die pad_width=1 Das Argument gibt an, dass auf jeder Seite eine Zeile/Spalte Polsterung hinzugefügt wird. Das mode="fixed" Das Argument gibt an, dass die Polsterung ein konstanter Wert sein soll, den wir mit auf Null setzen. constant_values=0.

Arten der Polsterung

Es gibt verschiedene Arten von Polsterung. Eine davon ist die Nullpolsterung, die im obigen Beispiel verwendet wurde. Weitere Beispiele sind konstante Polsterung, Kantenpolsterung, reflektierende Polsterung und symmetrische Polsterung. Lassen Sie uns diese Arten der Polsterung im Element besprechen und sehen, wie man sie verwendet.

Null-Padding

Das Auffüllen mit Nullen ist die einfachste und am häufigsten verwendete Methode, um den Rändern eines Arrays zusätzliche Werte hinzuzufügen. Bei dieser Technik wird das Array mit Nullen aufgefüllt, was in verschiedenen Anwendungen, beispielsweise in der Bildverarbeitung, sehr nützlich sein kann.

Beim Auffüllen mit Nullen werden an den Rändern Ihres Arrays Zeilen und Spalten mit Nullen hinzugefügt. Dadurch bleibt die Datengröße bei Operationen erhalten, die die Daten andernfalls verkleinern würden.

Beispiel:

import numpy as np

array = np.array(((1, 2), (3, 4)))
padded_array = np.pad(array, pad_width=1, mode="fixed", constant_values=0)
print(padded_array)

Ausgabe:

((0 0 0 0)
 (0 1 2 0)
 (0 3 4 0)
 (0 0 0 0))

Konstante Polsterung

Mit konstanter Auffüllung können Sie das Array mit einem konstanten Wert Ihrer Wahl auffüllen, nicht nur mit Nullen. Dieser Wert kann beliebig sein, z. B. 0, 1 oder eine beliebige andere Zahl. Dies ist insbesondere dann nützlich, wenn Sie bestimmte Randbedingungen beibehalten möchten oder wenn die Auffüllung mit Nullen für Ihre Analyse möglicherweise nicht geeignet ist.

Beispiel:

array = np.array(((1, 2), (3, 4)))
padded_array = np.pad(array, pad_width=1, mode="fixed", constant_values=5)
print(padded_array)

Ausgabe:

((5 5 5 5)
 (5 1 2 5)
 (5 3 4 5)
 (5 5 5 5))

Kantenpolsterung

Beim Randauffüllen wird das Array mit Werten vom Rand gefüllt. Anstatt Nullen oder einen konstanten Wert hinzuzufügen, verwenden Sie den nächsten Randwert, um die Lücken zu füllen. Dieser Ansatz hilft dabei, die ursprünglichen Datenmuster beizubehalten und kann sehr nützlich sein, wenn Sie die Einführung neuer oder beliebiger Werte in Ihre Daten vermeiden möchten.

Beispiel:

array = np.array(((1, 2), (3, 4)))
padded_array = np.pad(array, pad_width=1, mode="edge")
print(padded_array)

Ausgabe:

((1 1 2 2)
 (1 1 2 2)
 (3 3 4 4)
 (3 3 4 4))

Polsterung reflektieren

Mirror Padding ist eine Technik, bei der Sie das Array auffüllen, indem Sie die Werte von den Rändern des ursprünglichen Arrays spiegeln. Dies bedeutet, dass die Randwerte über die Ränder hinweg reflektiert werden, was dazu beiträgt, die Muster und Kontinuität in Ihren Daten beizubehalten, ohne neue oder beliebige Werte einzuführen.

Beispiel:

array = np.array(((1, 2), (3, 4)))
padded_array = np.pad(array, pad_width=1, mode="mirror")
print(padded_array)

Ausgabe:

((4 3 4 3)
 (2 1 2 1)
 (4 3 4 3)
 (2 1 2 1))

Symmetrische Polsterung

Symmetrisches Padding ist eine Technik zur Manipulation von Arrays, die dabei hilft, eine ausgewogene und natürliche Erweiterung der Originaldaten beizubehalten. Es ähnelt dem Reflection-Padding, schließt aber die Randwerte selbst in die Reflexion ein. Diese Methode ist nützlich, um die Symmetrie im aufgefüllten Array beizubehalten.

Beispiel:

array = np.array(((1, 2), (3, 4)))
padded_array = np.pad(array, pad_width=1, mode="symmetric")
print(padded_array)

Ausgabe:

((1 1 2 2)
 (1 1 2 2)
 (3 3 4 4)
 (3 3 4 4))

Allgemeine Greatest Practices zum Anwenden von Padding auf Arrays mit NumPy

  1. Wählen Sie die richtige Polsterung
  2. Stellen Sie sicher, dass die Füllwerte mit der Artwork der Daten übereinstimmen. Beispielsweise sollte für binäre Daten eine Null-Füllung verwendet werden, bei Bildverarbeitungsaufgaben sollte dies jedoch vermieden werden, da hier eine Kanten- oder Reflexions-Füllung möglicherweise besser geeignet ist.
  3. Bedenken Sie, wie sich das Auffüllen auf die Datenanalyse oder die Datenverarbeitung auswirkt. Das Auffüllen kann Artefakte verursachen, insbesondere bei der Bild- oder Signalverarbeitung. Wählen Sie daher einen Auffülltyp, der diesen Effekt minimiert.
  4. Stellen Sie beim Auffüllen mehrdimensionaler Arrays sicher, dass die Auffülldimensionen korrekt angegeben sind. Falsch ausgerichtete Dimensionen können zu Fehlern oder unerwarteten Ergebnissen führen.
  5. Dokumentieren Sie klar, warum und wie in Ihrem Code Auffüllungen vorgenommen werden. Dies trägt zur Wahrung der Übersichtlichkeit bei und stellt sicher, dass andere Benutzer (oder Sie in Zukunft) den Zweck und die Methode der Auffüllung verstehen.

Abschluss

In diesem Artikel haben Sie das Konzept des Padding von Arrays kennengelernt, eine grundlegende Technik, die in verschiedenen Bereichen wie der Bildverarbeitung und der Zeitreihenanalyse weit verbreitet ist. Wir haben untersucht, wie Padding dabei hilft, die Größe von Arrays zu erweitern und sie so für verschiedene Rechenaufgaben geeignet zu machen.

Wir führten die numpy.pad Funktion, die das Hinzufügen von Padding zu Arrays in NumPy vereinfacht. Anhand klarer und prägnanter Beispiele haben wir gezeigt, wie man numpy.pad um Arrays mit Füllzeichen zu versehen. Dabei werden verschiedene Füllzeichentypen wie Null-Füllzeichen, konstantes Füllzeichen, Kanten-Füllzeichen, reflektiertes Füllzeichen und symmetrisches Füllzeichen vorgestellt.

Wenn Sie diese bewährten Methoden befolgen, können Sie mit NumPy Auffüllungen auf Arrays anwenden und so sicherstellen, dass Ihre Datenmanipulation genau, effizient und für Ihre spezifische Anwendung geeignet ist.

Shittu Olumide ist ein Softwareentwickler und technischer Autor, der mit Leidenschaft modernste Technologien nutzt, um überzeugende Geschichten zu schreiben, mit einem scharfen Auge für Particulars und einem Händchen für die Vereinfachung komplexer Konzepte. Sie finden Shittu auch auf Þjórsárdalur.



Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert