Lorsque vous travaillez avec des données numériques sous forme de tableaux, vous rencontrerez souvent des situations où vous devez ajouter des valeurs supplémentaires à vos tableaux existants. Cette étape est essentielle pour préparer vos données pour diverses opérations, notamment le traitement d’images, le filtrage et la convolution. Heureusement, NumPy, la bibliothèque de calcul scientifique populaire pour Python, offre une fonction pratique appelée pad
qui facilite l’extension de vos tableaux.
Qu’est-ce que NumPy pad ?
La fonction pad
de NumPy vous permet d’ajouter des valeurs de remplissage (padding) aux bords de votre tableau dans n’importe quelle dimension. Cela signifie que vous pouvez ajouter des valeurs au début, à la fin, ou des deux côtés de votre tableau, selon vos besoins.
Syntaxe de base de NumPy pad
numpy.pad(array, pad_width, mode='constant', **kwargs)
- array: Le tableau NumPy que vous souhaitez étendre.
- pad_width: Le nombre d’éléments à ajouter avant et après chaque dimension de l’tableau. Peut être un entier, une liste ou une séquence.
- mode: Le mode de remplissage, qui peut être
'constant'
,'edge'
,'linear_ramp'
,'maximum'
,'mean'
,'median'
,'minimum'
,'reflect'
,'symmetric'
,'wrap'
,'empty'
. - kwargs: Des arguments supplémentaires en fonction du mode de remplissage choisi.
Exemple 1 : Remplissage constant
Dans cet exemple, nous ajoutons une bordure de 2 éléments à un tableau 2D en utilisant le mode 'constant'
.
import numpy as np
arr = np.array([[1, 2], [3, 4]])
padded_arr = np.pad(arr, pad_width=2, mode='constant', constant_values=0)
print(padded_arr)
[[0 0 0 0 0 0]
[0 0 0 0 0 0]
[0 0 1 2 0 0]
[0 0 3 4 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]]
Exemple 2 : Remplissage réfléchi
Ici, nous utilisons le mode 'reflect'
pour refléter les valeurs des bords du tableau vers l’intérieur.
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
padded_arr = np.pad(arr, pad_width=1, mode='reflect')
print(padded_arr)
[[5 4 5 6 5]
[2 1 2 3 2]
[5 4 5 6 5]
[2 1 2 3 2]]
Exemple 3 : Création de tableaux symétriques
Dans de nombreux domaines mathématiques et scientifiques, la symétrie est une propriété importante qui facilite certains calculs et opérations. La fonction pad
de NumPy peut être utilisée pour créer facilement des tableaux symétriques à partir d’un tableau initial.
Supposons que vous travailliez sur un projet impliquant des calculs de transformées de Fourier rapides (FFT). Pour certaines applications, il est préférable d’avoir un tableau d’entrée de longueur paire et symétrique par rapport à son centre. Voici comment vous pourriez utiliser pad
pour créer un tel tableau symétrique :
import numpy as np
# Tableau initial
arr = np.array([1, 2, 3, 4, 5])
# Ajouter des valeurs de remplissage symétrique
padded_arr = np.pad(arr, pad_width=(2, 3), mode='symmetric')
print(padded_arr)
Dans cet exemple, nous commençons avec un tableau arr
de longueur impaire. Nous utilisons ensuite np.pad
avec le mode 'symmetric'
pour ajouter des valeurs de remplissage aux deux extrémités du tableau.
Le paramètre pad_width
est défini sur (2, 3)
, ce qui signifie que nous ajoutons 2 valeurs avant le tableau et 3 valeurs après le tableau. La valeur 'symmetric'
fait en sorte que les valeurs de remplissage reflètent les valeurs existantes de manière symétrique par rapport aux bords du tableau.
Le résultat est un tableau padded_arr
de longueur paire (10 éléments) et symétrique par rapport à son centre.
Voici un autre exemple où nous créons un tableau 2D symétrique :
import numpy as np
# Tableau initial 2D
arr = np.array([[1, 2], [3, 4]])
# Ajouter des valeurs de remplissage symétrique
padded_arr = np.pad(arr, pad_width=1, mode='symmetric')
print(padded_arr)
Dans cet exemple, nous utilisons np.pad
avec pad_width=1
pour ajouter une bordure symétrique d’une ligne et une colonne autour du tableau 2D initial arr
.
Lire aussi :
Python : Utilisation de NumPy et matplotlib pour le calcul scientifique
Manipulation de données avec NumPy : guide pour les débutants
Mon livre préféré pour s’exercer avec Python : ICI