logo

numpy.pad() in Python

Das Numpy-Modul von Python bietet eine Funktion namens numpy.pad() zum Auffüllen des Arrays. Diese Funktion verfügt über mehrere erforderliche und optionale Parameter.

Syntax:

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

Parameter:

Array: array_like

Dies ist das Quellarray, das wir auffüllen möchten.

pad_width: int, sequence oder array_like

Dieser Parameter definiert die Anzahl der Werte, die an den Rändern jeder Achse aufgefüllt werden. Die eindeutigen Pad-Breiten für jede Achse sind definiert als (before_1, after_1), (before_2, after_2), ... (before_N, after_N)). Für jede Achse wird ((vorher, nachher)) genauso behandelt wie vor und nach dem Pad. Für alle Achsen ist int oder (pad) eine Abkürzung für before = after = pad width.

Modus: str oder Funktion (optional)

Dieser Parameter hat einen der folgenden Zeichenfolgewerte:

'konstant' (Standard)

cast sql

Wenn wir dem Modusparameter einen konstanten Wert zuweisen, erfolgt das Auffüllen mit einem konstanten Wert.

'Rand'

Es ist der Kantenwert des Arrays. Die Auffüllung erfolgt mit diesem Kantenwert.

'linear_ramp'

Dieser Wert wird verwendet, um das Auffüllen mit der linearen Rampe zwischen dem Kantenwert und dem Endwert durchzuführen.

'maximal'

Dieser Parameterwert führt eine Auffüllung durch, indem er den Maximalwert eines Vektorteils oder aller Vektoren entlang jeder Achse verwendet.

'bedeuten'

Dieser Parameterwert führt eine Auffüllung über den Mittelwert eines Vektorteils oder aller Vektoren entlang jeder Achse durch.

'Median'

Dieser Parameterwert führt eine Auffüllung über den Medianwert eines Vektorteils oder aller Vektoren entlang jeder Achse durch.

'Minimum'

Dieser Parameterwert führt eine Auffüllung über den Mindestwert eines Vektorteils oder aller Vektoren entlang jeder Achse durch.

'reflektieren'

Dieser Wert füllt das Array durch Vektorreflexion auf, die an den Start- und Endvektorwerten entlang jeder Achse gespiegelt wird.

'symmetrisch'

Dieser Wert wird verwendet, um das Array mittels Vektorreflexion aufzufüllen, die entlang der Kante des Arrays gespiegelt wird.

'wickeln'

Dieser Wert wird verwendet, um das Auffüllen des Arrays über den Umbruch des Vektors entlang der Achse durchzuführen. Die Startwerte dienen zum Auffüllen des Endes und die Endwerte füllen den Anfang auf.

'leer'

Alpha-Beta-Schnitt

Dieser Wert wird verwendet, um das Array mit undefinierten Werten aufzufüllen.

stat_length: int oder sequence (optional)

Dieser Parameter wird in „Maximum“, „Minimum“, „Mittelwert“, „Median“ verwendet. Es definiert die Anzahl der Werte an jeder Kantenachse, die zur Berechnung des statischen Werts verwendet werden.

Konstantwerte: Skalar oder Folge (optional)

Dieser Parameter wird in „Konstante“ verwendet. Es definiert die Werte zum Festlegen der aufgefüllten Werte für jede Achse.

Endwerte: Skalar oder Folge (optional)

Dieser Parameter wird in „linear_ramp“ verwendet. Es definiert die Werte, die für den letzten Wert von linear_ramp verwendet werden und den Rand des aufgefüllten Arrays bilden.

Reflect_Type: gerade oder ungerade (optional)

Dieser Parameter wird in „symmetric“ und „reflect“ verwendet. Standardmäßig ist der Reflect_Type „gerade“ mit einer unveränderten Reflexion um den Kantenwert. Durch Subtrahieren der reflektierten Werte vom Zweifachen des Kantenwerts wird der erweiterte Teil des Arrays für den „ungeraden“ Stil erstellt.

Kehrt zurück:

Pad: ndarray

Diese Funktion gibt das aufgefüllte Array mit dem Rang zurück, der dem Array entspricht, dessen Form entsprechend pad_width zunimmt.

Beispiel 1:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'constant', constant_values=(6, 4)) y 

Ausgabe:

 array([6, 6, 6, 1, 3, 2, 5, 4, 4, 4]) 

Im obigen Code

  • Wir haben numpy mit dem Aliasnamen np importiert.
  • Wir haben eine Liste mit Werten x erstellt.
  • Wir haben die Variable y deklariert und den zurückgegebenen Wert der Funktion np.pad() zugewiesen.
  • Wir haben die Liste x, pad_width, übergeben und den Modus auf gesetzt Konstante Und konstante_Werte in der Funktion.
  • Zuletzt haben wir versucht, den Wert von y auszugeben.

In der Ausgabe wird ein Ndarray angezeigt, das mit der definierten Größe und den definierten Werten aufgefüllt ist.

Beispiel 2:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'edge') y 

Ausgabe:

 array([1, 1, 1, 1, 3, 2, 5, 4, 4, 4]) 

Beispiel 3:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'linear_ramp', end_values=(-4, 5)) y 

Ausgabe:

 array([-4, -2, 0, 1, 3, 2, 5, 4, 4, 5]) 

Beispiel 4:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'maximum') y 

Ausgabe:

 array([5, 5, 5, 1, 3, 2, 5, 4, 5, 5, 5]) 

Beispiel 5:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'mean') y 

Ausgabe:

 array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3]) 

Beispiel 6:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'median') y 

Ausgabe:

 array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3]) 

Beispiel 7:

 import numpy as np a = [[1, 2], [3, 4]] y = np.pad(x, (3,), 'minimum') y 

Ausgabe:

 array([[1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [3, 3, 3, 3, 4, 3, 3], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1]]) 

Beispiel 8:

 import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): padding_value = kwargs.get('padder', 10) vector[:pad_width[0]] = padding_value vector[-pad_width[1]:] = padding_value x = np.arange(6) x = x.reshape((3, 2)) y = np.pad(x, 3, pad_with) y 

Ausgabe:

 array([41, 31, 21, 11, 21, 31, 41, 51, 41, 31]) 

Im obigen Code

  • Wir haben numpy mit dem Aliasnamen np importiert.
  • Wir haben eine Funktion erstellt pad_with mit Vektor , pad_width , iaxis , Und kwargs .
  • Wir haben die Variable pad_value deklariert, um Füllwerte von zu erhalten erhalten() Funktion.
  • Wir haben die Füllwerte an den Teil des Vektors übergeben.
  • Wir haben mit der Funktion np.arange() ein Array x erstellt und die Form mit der Funktion reshape() geändert.
  • Wir haben eine Variable y deklariert und den Rückgabewert der Funktion np.pad() zugewiesen.
  • Wir haben die Liste x und pad_width in der Funktion übergeben
  • Zuletzt haben wir versucht, den Wert von y auszugeben.

In der Ausgabe wird ein Ndarray angezeigt, das mit der definierten Größe und den definierten Werten aufgefüllt ist.

Beispiel 9:

 import numpy as np import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): padding_value = kwargs.get('padder', 10) vector[:pad_width[0]] = padding_value vector[-pad_width[1]:] = padding_value x = np.arange(6) x = x.reshape((3, 2)) np.pad(x, 3, pad_with) 

Ausgabe:

 array([[10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 0, 1, 10, 10, 10], [10, 10, 10, 2, 3, 10, 10, 10], [10, 10, 10, 4, 5, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10]]) 

Beispiel 10:

 import numpy as np import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): ... pad_value = kwargs.get('padder', 10) ... vector[:pad_width[0]] = pad_value ... vector[-pad_width[1]:] = pad_value x = np.arange(6) x = x.reshape((3, 2)) np.pad(x, 3, pad_with, padder=100) 

Ausgabe:

 array([[100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 0, 1, 100, 100, 100], [100, 100, 100, 2, 3, 100, 100, 100], [100, 100, 100, 4, 5, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100]])