logo

numpy.pad() i Python

numpy-modulet i Python giver en funktion kaldet numpy.pad() til at udføre padding i arrayet. Denne funktion har flere nødvendige og valgfrie parametre.

Syntaks:

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

Parametre:

array: array_like

Dette er kildearrayet, som vi ønsker at udfylde.

pad_width: int, sekvens eller array_like

Denne parameter definerer antallet af værdier, der er polstret til kanterne af hver akse. De unikke pudebredder for hver akse er defineret som (før_1, efter_1), (før_2, efter_2), ... (før_N, efter_N)). For hver akse vil ((før, efter)) blive behandlet på samme måde som før og efter puden. For alle akser er int eller (pad) en genvej til før = efter = pudebredde.

tilstand: str eller funktion (valgfrit)

Denne parameter har en af ​​følgende strengværdier:

'konstant' (standard)

img css align

Hvis vi tildeler en konstant værdi til tilstandsparameteren, vil padding blive udført med en konstant værdi.

'kant'

Det er kantværdien af ​​arrayet. Polstringen udføres med denne kantværdi.

'lineær_rampe'

Denne værdi bruges til at udføre polstring med den lineære rampe mellem kantværdien og slutværdien.

'maksimum'

Denne parameterværdi udfører udfyldning ved at bruge den maksimale værdi for en vektordel eller det hele langs hver akse.

'betyde'

Denne parameterværdi udfører polstring via middelværdien af ​​en vektordel eller det hele langs hver akse.

'median'

Denne parameterværdi udfører polstring via medianværdien af ​​en vektordel eller det hele langs hver akse.

'minimum'

Denne parameterværdi udfører udfyldning via min-værdien af ​​en vektordel eller det hele langs hver akse.

'afspejle'

Denne værdi udfylder arrayet via vektorreflektion, som spejles på start- og slutvektorværdierne langs hver akse.

'symmetrisk'

Denne værdi bruges til at udfylde arrayet via vektorreflektion, som spejles langs kanten af ​​arrayet.

'indpak'

Denne værdi bruges til at udføre polstring af arrayet via vektorens indpakning langs aksen. Startværdierne bruges til udfyldning af slutningen, og slutværdierne udfylder begyndelsen.

'tom'

Denne værdi bruges til at udfylde arrayet med udefinerede værdier.

stat_længde: int eller sekvens (valgfrit)

Denne parameter bruges i 'maksimum', 'minimum', 'middelværdi', 'median'. Den definerer antallet af værdier ved hver kantakse, der bruges til at beregne den statiske værdi.

konstante_værdier: skalar eller sekvens (valgfrit)

Denne parameter bruges i 'konstant'. Den definerer værdierne for indstilling af de polstrede værdier til hver akse.

slutværdier: skalar eller sekvens (valgfrit)

Denne parameter bruges i 'linear_rampe'. Den definerer de værdier, der bruges til den sidste værdi af linear_rampen og vil danne kanten af ​​det polstrede array.

reflect_type: lige eller ulige (valgfrit)

Denne parameter bruges i 'symmetrisk' og 'reflektere'. Som standard er reflect_type 'jævn' med en uændret refleksion omkring kantværdien. Ved at trække de reflekterede værdier fra to gange kantværdien, skabes arrayets udvidede del til den 'ulige' stil.

Vender tilbage:

pad: ndarray

Denne funktion returnerer det polstrede array med rang svarende til arrayet, hvis form øges i henhold til pad_width.

Eksempel 1:

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

Produktion:

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

I ovenstående kode

  • Vi har importeret numpy med alias navn np.
  • Vi har lavet en liste over værdier x.
  • Vi har erklæret variablen y og tildelt den returnerede værdi af funktionen np.pad().
  • Vi har bestået listen x, pad_width, sæt tilstanden til konstant og konstante_værdier i funktionen.
  • Til sidst forsøgte vi at udskrive værdien af ​​y.

I outputtet viser det en ndarray polstret med den definerede størrelse og værdier.

Eksempel 2:

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

Produktion:

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

Eksempel 3:

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

Produktion:

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

Eksempel 4:

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

Produktion:

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

Eksempel 5:

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

Produktion:

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

Eksempel 6:

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

Produktion:

'prim's algoritme'
 array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3]) 

Eksempel 7:

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

Produktion:

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

Eksempel 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 

Produktion:

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

I ovenstående kode

  • Vi har importeret numpy med alias navn np.
  • Vi har lavet en funktion pad_med med vektor , pad_width , iakse , og kwargs .
  • Vi har erklæret variablen pad_value for at få udfyldningsværdier fra få() fungere.
  • Vi har videregivet polstringsværdierne til den del af vektoren.
  • Vi har oprettet et array x ved hjælp af np.arange()-funktionen og ændret formen ved hjælp af reshape()-funktionen.
  • Vi har erklæret en variabel y og tildelt den returnerede værdi af funktionen np.pad() .
  • Vi har bestået listen x og pad_width i funktionen
  • Til sidst forsøgte vi at udskrive værdien af ​​y.

I outputtet viser det en ndarray polstret med den definerede størrelse og værdier.

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

Produktion:

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

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

Produktion:

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