Fonction Python Numpy.pad

Manav Narula 3 janvier 2023
Fonction Python Numpy.pad

En Python, nous avons le module NumPy pour créer et travailler avec des tableaux. Les tableaux peuvent être de différentes tailles et dimensions. Le remplissage est une méthode utile disponible pour compenser la taille d’un tableau. Nous pouvons modifier le tableau et ajouter des valeurs complétées pour changer sa forme et sa taille.

Nous pouvons également avoir d’autres méthodes pour remodeler un tableau. Néanmoins, cette fonction est utile car elle redimensionne automatiquement la mémoire du tableau après son utilisation.

La fonction numpy.pad() est utilisée pour y parvenir. Le code suivant montre un exemple de cette fonction.

import numpy as np

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

Production:

[0 0 0 1 2 3 4 5 5]

Dans l’exemple ci-dessus, le premier argument, un tuple (3,2), spécifie que les 3 éléments sont ajoutés avant l’axe, et 2 éléments sont ajoutés en fin d’axe.

Le paramètre mode spécifie le type de valeur à utiliser pour le remplissage du tableau. Dans notre code, nous utilisons les valeurs constantes 0 et 5 pour remplir le tableau, mais nous pouvons modifier ce mode en différents types comme median, mean, empty, wrap, et plus encore. Chaque mode fournit différents éléments pour remplir le tableau.

Nous pouvons également utiliser cette fonction avec des tableaux multidimensionnels. Par exemple,

import numpy as np

a = np.array(
    [[1.0, 1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0, 1.0]]
)
b = np.pad(a, [(0, 1), (0, 1)], mode="constant")
print(b)

Production:

[[1. 1. 1. 1. 1. 0.]
 [1. 1. 1. 1. 1. 0.]
 [1. 1. 1. 1. 1. 0.]
 [0. 0. 0. 0. 0. 0.]]
Noter
Nous devons spécifier deux tuples pour un tableau 2D, et que les valeurs de constante par défaut sont 0 dans la fonction.
Auteur: 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