NumPy Auffüllen

NumPy Auffüllen

  1. Verwenden Sie die Funktion NumPy.pad(), um ein NumPy-Array in Python aufzufüllen
  2. Verwenden Sie die Funktion shape(), um ein NumPy-Array in Python aufzufüllen

Python erlaubt keine direkte Verwendung von Arrays. Hier kommt die Bibliothek NumPy ins Spiel, die es ermöglicht, mit Arrays in Python umzugehen und diese zu manipulieren.

Arrays können jede angegebene Größe und Dimension haben. Manchmal müssen die Abmessungen eines bestimmten Arrays kompensiert werden, und hier ist das Auffüllen praktisch.

Auffüllen bezieht sich in einfachen Worten auf das Hinzufügen von nicht aussagekräftigen Werten, normalerweise Nullen, zu beliebigen Zeilen oder Spalten, wenn es um Arrays geht. Es wird in großem Umfang verwendet, um die schiere Anzahl von Zeilen oder Spalten in einem fehlenden Array oder einer Matrix zu kompensieren.

Dieses Tutorial zeigt, wie man ein NumPy-Array in Python auffüllt. Zum Beispiel werden wir in diesem Tutorial das angegebene NumPy-Array mit Nullen auffüllen.

Verwenden Sie die Funktion NumPy.pad(), um ein NumPy-Array in Python aufzufüllen

Wie der Name schon sagt, wird die Funktion NumPy.pad() verwendet, um die Auffülloperation auf NumPy-Arrays durchzuführen.

Die Syntax der Funktion NumPy.pad() ist wie folgt.

numpy.pad(array, pad_width, mode='constant', **kwargs)

Alle Parameter der Funktion NumPy.pad() wurden unten zum besseren Verständnis des Lesers definiert.

  1. array - Der Parameter gibt das Array an, das aufgefüllt werden muss.

  2. pad_width – Gibt die Anzahl der Werte an, die zu den Kanten aller Achsen hinzugefügt werden. Tupel werden verwendet, um die Breite der mehrdimensionalen Arrays anzugeben.

  3. mode – Ein optionaler Parameter gibt den Modus des Arrays an.

  4. **kwargs – Kann variable Schlüsselwortlänge des Arguments innerhalb einer Funktion übergeben. Es ist optional zu erwähnen, und Sie können online mehr darüber lesen.

    In den Beispielen in diesem Artikel wird dieses Argument nicht verwendet.

Hier nehmen wir ein Beispiel für ein mehrdimensionales Array, aber das gleiche kann für ein eindimensionales Array gemacht werden, indem der Code ein wenig angepasst wird.

Der folgende Code verwendet die Funktion NumPy.pad(), um ein NumPy-Array in Python aufzufüllen.

import numpy as np
x = np.array([[ 1.,  1.,  1.,  1.],
               [ 1.,  1.,  1.,  1.],
               [ 1.,  1.,  1.,  1.]])
y = np.pad(x, [(0, 1), (0, 1)], mode='constant')
print(y)

Der obige Code liefert die folgende Ausgabe.

[[1. 1. 1. 1. 0.]
 [1. 1. 1. 1. 0.]
 [1. 1. 1. 1. 0.]
 [0. 0. 0. 0. 0.]]

Hier führen wir die Auffülloperation für ein mehrdimensionales Array aus, um seine Dimensionen auf unsere angegebene Größe zu erweitern.

Verwenden Sie die Funktion shape(), um ein NumPy-Array in Python aufzufüllen

Dies ist eine indirekte Methode, die auch in der Lage ist, die gleichen Ergebnisse wie die Funktion NumPy.pad() zu erzielen. Die Funktion shape() ist eine weitere der Funktionen, die in der NumPy-Bibliothek enthalten sind, und kann aufgerufen werden, nachdem diese Bibliothek in den Code importiert wurde.

Die Funktion shape wird verwendet, um die Dimensionen eines gegebenen Arrays oder einer Matrix zu bestimmen.

Diese Methode ist etwas langatmig, da sie eine neue Nullmatrix mit den gewünschten Dimensionen gemäß den Anforderungen des Benutzers erstellt und dann die ursprüngliche Matrix in die neu erstellte Nullmatrix einfügt. Es erzielt die gleichen Ergebnisse, nimmt aber einen anderen und indirekten Weg, um zum Ergebnis zu gelangen.

Neben der Funktion shape() verwendet dieser Ansatz die Methode NumPy.zeros(), um eine Nullmatrix zu erstellen.

Für diesen Ansatz benötigen wir eine Referenzmatrix, deren Abmessungen die Anforderungen der Zielabmessungen des Benutzers nach dem Auffüllen erfüllen, da wir zuerst die Referenz der endgültigen Abmessungen nehmen, die zum Erstellen der Nullmatrix erforderlich sind.

Der folgende Code verwendet die Funktion shape(), um ein NumPy-Array in Python aufzufüllen.

import numpy as np
x = np.array([[ 1.,  1.,  1.,  1.],
               [ 1.,  1.,  1.,  1.],
               [ 1.,  1.,  1.,  1.]])
y = np.array([[ 1., 1., 1., 1., 1.],
               [1., 1., 1., 1., 1.],
               [1., 1., 1., 1., 1.],
               [1., 1., 1., 1., 1.]])
z = np.zeros(np.shape(y))
z[:x.shape[0],:x.shape[1]] = x
print(z)

Der obige Code liefert die folgende Ausgabe.

[[1. 1. 1. 1. 0.]
 [1. 1. 1. 1. 0.]
 [1. 1. 1. 1. 0.]
 [0. 0. 0. 0. 0.]]