logo

numpy.pad() v Pythone

Numpy modul Pythonu poskytuje funkciu s názvom numpy.pad() na vykonanie výplne v poli. Táto funkcia má niekoľko povinných a voliteľných parametrov.

Syntax:

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

Parametre:

pole: pole_like

Toto je zdrojové pole, ktoré chceme vyplniť.

pad_width: int, sekvencia alebo pole podobné

Tento parameter definuje počet hodnôt, ktoré sú doplnené na okraje každej osi. Jedinečné šírky podložiek pre každú os sú definované ako (before_1, after_1), (before_2, after_2), ... (before_N, after_N)). Pre každú os sa ((pred, po),) bude zaobchádzať rovnako ako s podložkou pred a za. Pre všetky osi je int alebo (pad,) skratkou pred = po = šírka podložky.

režim: str alebo funkcia (voliteľné)

Tento parameter má jednu z nasledujúcich hodnôt reťazca:

'konštantný' (predvolené)

orezanie reťazca javascript

Ak parametru mode priradíme konštantnú hodnotu, výplň sa vykoná s konštantnou hodnotou.

'hrana'

Je to okrajová hodnota poľa. Výplň sa vykoná s touto hodnotou okraja.

'linear_ramp'

Táto hodnota sa používa na vykonanie výplne s lineárnou rampou medzi hodnotou hrany a koncovou hodnotou.

'maximum'

Táto hodnota parametra vykonáva výplň pomocou maximálnej hodnoty vektorovej časti alebo celej pozdĺž každej osi.

'priemer'

Táto hodnota parametra vykonáva výplň cez strednú hodnotu časti vektora alebo všetkých pozdĺž každej osi.

'medián'

Táto hodnota parametra vykonáva výplň prostredníctvom strednej hodnoty časti vektora alebo všetkých pozdĺž každej osi.

'minimum'

Táto hodnota parametra vykonáva výplň prostredníctvom minimálnej hodnoty časti vektora alebo celej pozdĺž každej osi.

'reflektovať'

Táto hodnota vyplní pole pomocou vektorového odrazu, ktorý sa zrkadlí na počiatočných a koncových vektorových hodnotách pozdĺž každej osi.

'symetrický'

Táto hodnota sa používa na vyplnenie poľa prostredníctvom vektorového odrazu, ktorý sa zrkadlí pozdĺž okraja poľa.

'obal'

Táto hodnota sa používa na vykonanie výplne poľa prostredníctvom zalomenia vektora pozdĺž osi. Počiatočné hodnoty sa používajú na doplnenie konca a koncové hodnoty na začiatok.

'prázdny'

Táto hodnota sa používa na vyplnenie poľa nedefinovanými hodnotami.

stat_length: int alebo sekvencia (voliteľné)

Tento parameter sa používa v parametroch 'maximum', 'minimum', 'mean', 'medián'. Definuje počet hodnôt na každej osi hrany, ktoré sa používajú na výpočet statickej hodnoty.

konštantné_hodnoty: skalárne alebo sekvencie (voliteľné)

Tento parameter sa používa v režime „konštantný“. Definuje hodnoty pre nastavenie vyplnených hodnôt pre každú os.

koncové_hodnoty: skalárne alebo sekvencie (voliteľné)

Tento parameter sa používa v 'linear_ramp'. Definuje hodnoty, ktoré sa použijú pre poslednú hodnotu linear_ramp a budú tvoriť okraj vyplneného poľa.

Reflect_type: párne alebo nepárne (voliteľné)

Tento parameter sa používa pri „symetrických“ a „odrazových“. Štandardne je typ reflect_type 'párny' s nezmeneným odrazom okolo hodnoty hrany. Odčítaním odrazených hodnôt od dvojnásobku hodnoty hrany sa vytvorí rozšírená časť poľa pre „nepárny“ štýl.

Vrátenie:

podložka: ndarray

Táto funkcia vráti vyplnené pole poradia rovnú poľu, ktorého tvar sa zväčší podľa pad_width.

Príklad 1:

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

Výkon:

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

Vo vyššie uvedenom kóde

  • Importovali sme numpy s aliasom np.
  • Vytvorili sme zoznam hodnôt x.
  • Deklarovali sme premennú y a priradili vrátenú hodnotu funkcie np.pad().
  • Prešli sme zoznamom x, pad_width, nastavte režim na konštantný a konštantné_hodnoty vo funkcii.
  • Nakoniec sme sa pokúsili vytlačiť hodnotu y.

Vo výstupe zobrazuje ndarray vyplnený definovanou veľkosťou a hodnotami.

harald baldr

Príklad 2:

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

Výkon:

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

Príklad 3:

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

Výkon:

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

Príklad 4:

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

Výkon:

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

Príklad 5:

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

Výkon:

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

Príklad 6:

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

Výkon:

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

Príklad 7:

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

Výkon:

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

Príklad 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 

Výkon:

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

Vo vyššie uvedenom kóde

  • Importovali sme numpy s aliasom np.
  • Vytvorili sme funkciu podložka_s s vektor , šírka_podložky , iaxis , a kwargovia .
  • Deklarovali sme premennú pad_value na získanie hodnôt výplne z dostať () funkciu.
  • Hodnoty výplne sme odovzdali časti vektora.
  • Vytvorili sme pole x pomocou funkcie np.arange() a zmenili tvar pomocou funkcie reshape().
  • Deklarovali sme premennú y a priradili vrátenú hodnotu funkcie np.pad().
  • Vo funkcii sme odovzdali zoznam x a pad_width
  • Nakoniec sme sa pokúsili vytlačiť hodnotu y.

Vo výstupe zobrazuje ndarray vyplnený definovanou veľkosťou a hodnotami.

Príklad 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) 

Výkon:

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

Príklad 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) 

Výkon:

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