Python Numpy.pad Funktion

Manav Narula 3 Januar 2023 30 März 2021 Python Python Numpy
Python Numpy.pad Funktion

In Python haben wir das Modul NumPy, um Arrays zu erstellen und damit zu arbeiten. Arrays können unterschiedliche Größen und Abmessungen haben. Das Auffüllen ist eine nützliche Methode, um die Größe eines Arrays zu kompensieren. Wir können das Array ändern und einige aufgefüllte Werte hinzufügen, um seine Form und Größe zu ändern.

Wir können auch andere Methoden verwenden, um ein Array umzuformen. Diese Funktion ist jedoch von Vorteil, da die Größe des Arrays nach der Verwendung automatisch geändert wird.

Hierzu wird die Funktion numpy.pad() verwendet. Der folgende Code zeigt ein Beispiel für diese Funktion.

import numpy as np
a = [1,2,3,4] 
b = np.pad(a,(3, 2), mode =  'constant', constant_values = (0, 5))
print(b)

Ausgabe:

[0 0 0 1 2 3 4 5 5]

Im obigen Beispiel gibt das erste Argument, ein (3,2)-Tupel, an, dass die 3 Elemente vor der Achse und 2 Elemente am Ende der Achse hinzugefügt werden.

Der Parameter mode gibt an, welcher Werttyp zum Auffüllen des Arrays verwendet werden soll. In unserem Code verwenden wir konstante Werte 0 und 5, um das Array aufzufüllen. Wir können diesen Modus jedoch in verschiedene Typen wie median, mean, empty, wrap und mehr ändern. Jeder Modus bietet verschiedene Elemente, mit denen das Array aufgefüllt werden kann.

Wir können diese Funktion auch mit mehrdimensionalen Arrays verwenden. Zum Beispiel,

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

Ausgabe:

[[1. 1. 1. 1. 1. 0.]
 [1. 1. 1. 1. 1. 0.]
 [1. 1. 1. 1. 1. 0.]
 [0. 0. 0. 0. 0. 0.]]
Hinweis
Wir müssen zwei Tupel für ein 2D-Array angeben, und diese Standardkonstantenwerte sind 0 in der Funktion.
Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn