Modul numpy v Pythonu ponuja funkcijo, imenovano numpy.pad(), za izvajanje oblazinjenja v matriki. Ta funkcija ima več obveznih in neobveznih parametrov.
Sintaksa:
numpy.pad(array, pad_width, mode='constant', **kwargs)
Parametri:
niz: array_like
To je izvorni niz, ki ga želimo zapolniti.
pad_width: int, zaporedje ali array_like
Ta parameter določa število vrednosti, ki so obrobljene na robovih vsake osi. Edinstvene širine ploščic za vsako os so definirane kot (before_1, after_1), (before_2, after_2), ... (before_N, after_N)). Za vsako os bo ((pred, za),) obravnavana enako kot pred in za ploščico. Za vse osi je int ali (pad,) bližnjica do pred = za = širina ploščice.
način: str ali funkcija (neobvezno)
Ta parameter ima eno od naslednjih vrednosti niza:
'konstanta' (privzeto)
markdown s slikami
Če parametru načina dodelimo konstantno vrednost, bo oblazinjenje izvedeno s konstantno vrednostjo.
'rob'
Je vrednost roba matrike. Oblazinjenje bo izvedeno s to vrednostjo roba.
'linearna_rampa'
Ta vrednost se uporablja za izvedbo oblazinjenja z linearno rampo med vrednostjo roba in končno vrednostjo.
'največ'
Ta vrednost parametra izvede oblazinjenje z uporabo največje vrednosti vektorskega dela ali vsega vzdolž vsake osi.
'pomeni'
Ta vrednost parametra izvaja oblazinjenje preko srednje vrednosti vektorskega dela ali vsega, vzdolž vsake osi.
'mediana'
Ta vrednost parametra izvede oblazinjenje prek srednje vrednosti dela vektorja ali vsega, vzdolž vsake osi.
'najmanj'
Ta vrednost parametra izvede oblazinjenje prek najmanjše vrednosti vektorskega dela ali vsega vzdolž vsake osi.
'reflect'
Ta vrednost dopolnjuje matriko prek vektorskega odboja, ki se zrcali na začetnih in končnih vektorskih vrednostih vzdolž vsake osi.
'simetričen'
Ta vrednost se uporablja za oblaganje matrike prek vektorskega odboja, ki se zrcali vzdolž roba matrike.
'zaviti'
Ta vrednost se uporablja za izvajanje oblazinjenja matrike prek ovijanja vektorja vzdolž osi. Začetne vrednosti se uporabljajo za polnjenje konca, končne vrednosti pa začetek.
'prazno'
Ta vrednost se uporablja za polnjenje matrike z nedefiniranimi vrednostmi.
stat_length: int ali zaporedje (neobvezno)
Ta parameter se uporablja v 'maximum', 'minimum', 'mean', 'mediana'. Določa število vrednosti na vsaki robni osi, ki se uporabljajo za izračun statične vrednosti.
konstantne_vrednosti: skalar ali zaporedje (neobvezno)
Ta parameter se uporablja v 'konstanti'. Določa vrednosti za nastavitev podloženih vrednosti za vsako os.
končne_vrednosti: skalar ali zaporedje (neobvezno)
Ta parameter se uporablja v 'linear_ramp'. Določa vrednosti, ki se uporabljajo za zadnjo vrednost linear_ramp in tvorijo rob oblazinjene matrike.
reflect_type: sodo ali liho (neobvezno)
Ta parameter se uporablja v 'symmetric' in 'reflect'. Privzeto je reflect_type 'even' z nespremenjenim odsevom okoli vrednosti roba. Z odštevanjem odbitih vrednosti od dvakratne vrednosti roba se ustvari razširjeni del matrike za 'čuden' slog.
Vrne:
ploščica: ndarray
Ta funkcija vrne oblazinjeno matriko ranga, ki je enak matriki, katere oblika se poveča glede na pad_width.
Primer 1:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'constant', constant_values=(6, 4)) y
Izhod:
array([6, 6, 6, 1, 3, 2, 5, 4, 4, 4])
V zgornji kodi
- Uvozili smo numpy z vzdevkom np.
- Ustvarili smo seznam vrednosti x.
- Deklarirali smo spremenljivko y in dodelili vrnjeno vrednost funkcije np.pad().
- Posredovali smo seznam x, pad_width, nastavili način na konstantna in stalne_vrednosti v funkciji.
- Nazadnje smo poskušali natisniti vrednost y.
V izhodu prikaže ndarray, obložen z definirano velikostjo in vrednostmi.
Primer 2:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'edge') y
Izhod:
array([1, 1, 1, 1, 3, 2, 5, 4, 4, 4])
Primer 3:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'linear_ramp', end_values=(-4, 5)) y
Izhod:
array([-4, -2, 0, 1, 3, 2, 5, 4, 4, 5])
Primer 4:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'maximum') y
Izhod:
array([5, 5, 5, 1, 3, 2, 5, 4, 5, 5, 5])
Primer 5:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'mean') y
Izhod:
rimske številke od 1 do 100
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
Primer 6:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'median') y
Izhod:
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
Primer 7:
import numpy as np a = [[1, 2], [3, 4]] y = np.pad(x, (3,), 'minimum') y
Izhod:
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]])
Primer 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
Izhod:
array([41, 31, 21, 11, 21, 31, 41, 51, 41, 31])
V zgornji kodi
- Uvozili smo numpy z vzdevkom np.
- Ustvarili smo funkcijo podloga_z z vektor , širina_ploskve , iaxis , in kwargs .
- Razglasili smo spremenljivko pad_value, da dobimo vrednosti oblazinjenja iz dobiti () funkcijo.
- Vrednosti oblazinjenja smo posredovali delu vektorja.
- Ustvarili smo matriko x s funkcijo np.arange() in spremenili obliko s funkcijo reshape().
- Deklarirali smo spremenljivko y in dodelili vrnjeno vrednost funkcije np.pad().
- V funkciji smo posredovali seznam x in pad_width
- Nazadnje smo poskušali natisniti vrednost y.
V izhodu prikaže ndarray, obložen z definirano velikostjo in vrednostmi.
Primer 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)
Izhod:
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]])
Primer 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)
Izhod:
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]])