numpy-modulen i Python tillhandahåller en funktion som kallas numpy.pad() för att utföra utfyllnad i arrayen. Denna funktion har flera obligatoriska och valfria parametrar.
Syntax:
numpy.pad(array, pad_width, mode='constant', **kwargs)
Parametrar:
array: array_like
Det här är källmatrisen som vi vill fylla på.
pad_width: int, sekvens eller array_like
Den här parametern definierar antalet värden som är utfyllda till kanterna på varje axel. De unika padbredderna för varje axel definieras som (före_1, efter_1), (före_2, efter_2), ... (före_N, efter_N)). För varje axel kommer ((före, efter)) att behandlas på samma sätt som före och efter pad. För alla axlar är int, eller (pad,) en genväg till före = efter = pad bredd.
läge: str eller funktion (valfritt)
Den här parametern har ett av följande strängvärden:
'konstant' (standard)
fjäderstövel
Om vi tilldelar modeparametern ett konstant värde, kommer utfyllnad att göras med ett konstant värde.
'kant'
Det är kantvärdet för arrayen. Utfyllningen kommer att göras med detta kantvärde.
'linjär_ramp'
Detta värde används för att utföra utfyllnad med den linjära rampen mellan kantvärdet och slutvärdet.
'maximal'
Detta parametervärde utför utfyllnad genom att använda maxvärdet för en vektordel eller alla längs varje axel.
'betyda'
Detta parametervärde utför utfyllnad via medelvärdet för en vektordel eller hela, längs varje axel.
'median'
Detta parametervärde utför utfyllnad via medianvärdet för en vektordel eller allt, längs varje axel.
'minimum'
Detta parametervärde utför utfyllnad via minvärdet för en vektordel eller allt, längs varje axel.
'reflektera'
Detta värde fyller matrisen via vektorreflektion, som speglas på start- och slutvektorvärdena, längs varje axel.
'symmetrisk'
Detta värde används för att utfylla arrayen via vektorreflektion, som speglas längs kanten av arrayen.
'slå in'
Detta värde används för att utföra utfyllnad av matrisen via vektorns lindning längs axeln. Startvärdena används för utfyllnad av slutet, och slutvärden fyller början.
'tömma'
Detta värde används för att fylla arrayen med odefinierade värden.
stat_length: int eller sekvens (valfritt)
Denna parameter används i 'maximum', 'minimum', 'mean', 'median'. Den definierar antalet värden vid varje kantaxel, som används för att beräkna det statiska värdet.
konstanta_värden: skalär eller sekvens (valfritt)
Denna parameter används i 'konstant'. Den definierar värdena för inställning av vadderade värden för varje axel.
end_values: skalär eller sekvens (valfritt)
Denna parameter används i 'linear_ramp'. Den definierar värdena som används för det sista värdet på linear_rampen och kommer att bilda kanten på den vadderade arrayen.
kylie jenner ålder
reflect_type: jämn eller udda (valfritt)
Denna parameter används i 'symmetrisk' och 'reflektera'. Som standard är reflect_type 'jämn' med en oförändrad reflektion runt kantvärdet. Genom att subtrahera de reflekterade värdena från två gånger kantvärdet skapas arrayens utökade del för den 'udda' stilen.
Returnerar:
pad: ndarray
Denna funktion returnerar den vadderade arrayen med rang lika med arrayen, vars form ökar enligt pad_width.
Exempel 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 ovanstående kod
- Vi har importerat numpy med alias np.
- Vi har skapat en lista med värden x.
- Vi har deklarerat variabeln y och tilldelat det returnerade värdet för funktionen np.pad().
- Vi har passerat listan x, pad_width, ställ in läget på konstant och konstanta_värden i funktionen.
- Till sist försökte vi skriva ut värdet på y.
I utgången visar den en ndarray utfylld med den definierade storleken och värdena.
Exempel 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])
Exempel 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])
Exempel 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])
Exempel 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])
Exempel 6:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'median') y
Produktion:
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
Exempel 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]])
Exempel 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 ovanstående kod
- Vi har importerat numpy med alias np.
- Vi har skapat en funktion pad_with med vektor , pad_width , iaxis , och kwargs .
- Vi har deklarerat variabeln pad_value för att få utfyllnadsvärden från skaffa sig() fungera.
- Vi har skickat utfyllnadsvärdena till delen av vektorn.
- Vi har skapat en array x med funktionen np.arange() och ändrat formen med funktionen reshape().
- Vi har deklarerat en variabel y och tilldelat det returnerade värdet för funktionen np.pad() .
- Vi har passerat listan x och pad_width i funktionen
- Till sist försökte vi skriva ut värdet på y.
I utgången visar den en ndarray utfylld med den definierade storleken och värdena.
Exempel 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]])
Exempel 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]])