logo

numpy.pad() en Python

Le module numpy de Python fournit une fonction appelée numpy.pad() pour effectuer un remplissage dans le tableau. Cette fonction comporte plusieurs paramètres obligatoires et facultatifs.

Syntaxe:

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

Paramètres:

tableau : tableau_like

C'est le tableau source que nous voulons compléter.

pad_width : int, séquence ou array_like

Ce paramètre définit le nombre de valeurs qui sont complétées jusqu'aux bords de chaque axe. Les largeurs de tampon uniques pour chaque axe sont définies comme (before_1, after_1), (before_2, after_2), ... (before_N, after_N)). Pour chaque axe, ((avant, après),) sera traité de la même manière qu'avant et après le pad. Pour tous les axes, l'int, ou (pad,) est un raccourci vers before = after = pad width.

mode : str ou fonction (facultatif)

Ce paramètre a l'une des valeurs de chaîne suivantes :

'constant' (par défaut)

fonctions en c

Si nous attribuons une valeur constante au paramètre mode, le remplissage se fera avec une valeur constante.

'bord'

C'est la valeur de bord du tableau. Le remplissage sera effectué avec cette valeur de bord.

'rampe_linéaire'

Cette valeur est utilisée pour effectuer un remplissage avec la rampe linéaire entre la valeur de bord et la valeur finale.

'maximum'

La valeur de ce paramètre effectue un remplissage en utilisant la valeur maximale d'une partie du vecteur ou de la totalité, le long de chaque axe.

'signifier'

La valeur de ce paramètre effectue un remplissage via la valeur moyenne d'une partie du vecteur ou de la totalité, le long de chaque axe.

'médian'

La valeur de ce paramètre effectue un remplissage via la valeur médiane d'une partie du vecteur ou de la totalité, le long de chaque axe.

'le minimum'

Cette valeur de paramètre effectue un remplissage via la valeur minimale d'une partie du vecteur ou de la totalité, le long de chaque axe.

'refléter'

Cette valeur complète le tableau via une réflexion vectorielle, qui est reflétée sur les valeurs vectorielles de début et de fin, le long de chaque axe.

'symétrique'

Cette valeur est utilisée pour compléter le tableau via une réflexion vectorielle, qui est reflétée le long du bord du tableau.

'envelopper'

Cette valeur est utilisée pour effectuer un remplissage du tableau via l'enroulement du vecteur le long de l'axe. Les valeurs de début sont utilisées pour compléter la fin et les valeurs de fin complètent le début.

'vide'

Cette valeur est utilisée pour remplir le tableau avec des valeurs non définies.

stat_length : int ou séquence (facultatif)

Ce paramètre est utilisé en 'maximum', 'minimum', 'moyenne', 'médiane'. Il définit le nombre de valeurs sur chaque axe de bord, utilisées pour calculer la valeur statique.

constant_values : scalaire ou séquence (facultatif)

Ce paramètre est utilisé en 'constant'. Il définit les valeurs permettant de définir les valeurs complétées pour chaque axe.

end_values : scalaire ou séquence (facultatif)

Ce paramètre est utilisé dans 'linear_ramp'. Il définit les valeurs qui sont utilisées pour la dernière valeur de Linear_ramp et formeront le bord du tableau complété.

carte d'itération Java

Reflect_type : pair ou impair (facultatif)

Ce paramètre est utilisé dans 'symétrique' et 'reflect'. Par défaut, le type_réflecteur est « pair » avec une réflexion inchangée autour de la valeur du bord. En soustrayant les valeurs réfléchies de deux fois la valeur du bord, la partie étendue du tableau est créée pour le style « impair ».

Retour:

tampon : ndarray

Cette fonction renvoie le tableau complété de rang égal au tableau, dont la forme augmente en fonction de pad_width.

Exemple 1:

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

Sortir:

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

Dans le code ci-dessus

  • Nous avons importé numpy avec le nom d'alias np.
  • Nous avons créé une liste de valeurs x.
  • Nous avons déclaré la variable y et attribué la valeur renvoyée par la fonction np.pad().
  • Nous avons passé la liste x, pad_width, définissons le mode sur constante et valeurs_constantes dans la fonction.
  • Enfin, nous avons essayé d'imprimer la valeur de y.

Dans la sortie, il affiche un ndarray complété avec la taille et les valeurs définies.

Exemple 2 :

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

Sortir:

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

Exemple 3 :

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

Sortir:

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

Exemple 4 :

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

Sortir:

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

Exemple 5 :

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

Sortir:

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

Exemple 6 :

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

Sortir:

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

Exemple 7 :

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

Sortir:

 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]]) 

Exemple 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 

Sortir:

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

Dans le code ci-dessus

  • Nous avons importé numpy avec le nom d'alias np.
  • Nous avons créé une fonction pad_avec avec vecteur , pad_width , iaxe , et kwargs .
  • Nous avons déclaré la variable pad_value pour obtenir les valeurs de remplissage du obtenir() fonction.
  • Nous avons transmis les valeurs de remplissage à la partie du vecteur.
  • Nous avons créé un tableau x à l'aide de la fonction np.arange() et modifié la forme à l'aide de la fonction reshape().
  • Nous avons déclaré une variable y et attribué la valeur renvoyée par la fonction np.pad().
  • Nous avons passé la liste x et pad_width dans la fonction
  • Enfin, nous avons essayé d'imprimer la valeur de y.

Dans la sortie, il affiche un ndarray complété avec la taille et les valeurs définies.

Exemple 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) 

Sortir:

 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]]) 

Exemple 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) 

Sortir:

 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]])