logo

numpy.pad() i Python

numpy-modulen til Python gir en funksjon kalt numpy.pad() for å utføre utfylling i matrisen. Denne funksjonen har flere nødvendige og valgfrie parametere.

Syntaks:

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

Parametere:

array: array_like

Dette er kildematrisen som vi ønsker å fylle ut.

pad_width: int, sekvens eller array_like

Denne parameteren definerer antall verdier som er polstret til kantene på hver akse. De unike putebreddene for hver akse er definert som (før_1, etter_1), (før_2, etter_2), ... (før_N, etter_N)). For hver akse vil ((før, etter)) bli behandlet på samme måte som før og etter puten. For alle akser er int, eller (pad,) en snarvei til før = etter = putebredde.

modus: str eller funksjon (valgfritt)

Denne parameteren har en av følgende strengverdier:

'konstant' (standard)

analog kommunikasjon

Hvis vi tilordner en konstant verdi til modusparameteren, vil utfylling gjøres med en konstant verdi.

'kant'

Det er kantverdien til matrisen. Polstringen vil bli utført med denne kantverdien.

'lineær_rampe'

Denne verdien brukes til å utføre polstring med den lineære rampen mellom kantverdien og sluttverdien.

'maksimum'

Denne parameterverdien utfører utfylling ved å bruke maksverdien til en vektordel eller alle, langs hver akse.

'mener'

Denne parameterverdien utfører utfylling via middelverdien til en vektordel eller hele, langs hver akse.

'median'

Denne parameterverdien utfører utfylling via medianverdien til en vektordel eller hele, langs hver akse.

'minimum'

Denne parameterverdien utfører utfylling via min-verdien til en vektordel eller hele, langs hver akse.

'reflektere'

Denne verdien fyller matrisen via vektorrefleksjon, som speiles på start- og sluttvektorverdiene, langs hver akse.

'symmetrisk'

Denne verdien brukes til å fylle matrisen via vektorrefleksjon, som speiles langs kanten av matrisen.

'pakke inn'

Denne verdien brukes til å utføre polstring av matrisen via viklingen av vektoren langs aksen. Startverdiene brukes til utfylling av slutten, og sluttverdiene fyller begynnelsen.

'tømme'

Denne verdien brukes til å fylle matrisen med udefinerte verdier.

stat_length: int eller sekvens (valgfritt)

Denne parameteren brukes i 'maksimum', 'minimum', 'gjennomsnitt', 'median'. Den definerer antall verdier ved hver kantakse, som brukes til å beregne den statiske verdien.

konstante_verdier: skalar eller sekvens (valgfritt)

Denne parameteren brukes i 'konstant'. Den definerer verdiene for innstilling av polstrede verdier til hver akse.

sluttverdier: skalar eller sekvens (valgfritt)

Denne parameteren brukes i 'linear_ramp'. Den definerer verdiene som brukes for den siste verdien av linear_rampen og vil danne kanten av den polstrede matrisen.

reflect_type: partall eller odd (valgfritt)

Denne parameteren brukes i 'symmetrisk' og 'reflektere'. Som standard er reflect_type 'even' med en uendret refleksjon rundt kantverdien. Ved å trekke de reflekterte verdiene fra to ganger kantverdien, opprettes arrayens utvidede del for den 'odde' stilen.

Returnerer:

pad: ndarray

Denne funksjonen returnerer den polstrede matrisen med rangering lik matrisen, hvis form øker 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 

Produksjon:

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

I koden ovenfor

  • Vi har importert numpy med alias navn np.
  • Vi har laget en liste over verdier x.
  • Vi har erklært variabelen y og tildelt den returnerte verdien av np.pad()-funksjonen.
  • Vi har passert listen x, pad_width, sett modusen til konstant og konstante_verdier i funksjonen.
  • Til slutt prøvde vi å skrive ut verdien av y.

I utgangen viser den en ndarray polstret med den definerte størrelsen og verdiene.

Eksempel 2:

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

Produksjon:

 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 

Produksjon:

 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 

Produksjon:

 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 

Produksjon:

 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 

Produksjon:

'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 

Produksjon:

 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 

Produksjon:

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

I koden ovenfor

  • Vi har importert numpy med alias navn np.
  • Vi har laget en funksjon pad_with med vektor , pad_width , iakse , og kwargs .
  • Vi har erklært variabelen pad_value for å hente utfyllingsverdier fra få() funksjon.
  • Vi har sendt utfyllingsverdiene til delen av vektoren.
  • Vi har laget en array x ved å bruke np.arange()-funksjonen og endret formen ved å bruke reshape()-funksjonen.
  • Vi har erklært en variabel y og tildelt den returnerte verdien til np.pad()-funksjonen.
  • Vi har passert listen x og pad_width i funksjonen
  • Til slutt prøvde vi å skrive ut verdien av y.

I utgangen viser den en ndarray polstret med den definerte størrelsen og verdiene.

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) 

Produksjon:

 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) 

Produksjon:

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