logo

numpy.pad() u Pythonu

Modul numpy u Pythonu pruža funkciju koja se zove numpy.pad() za izvođenje popune u nizu. Ova funkcija ima nekoliko obaveznih i izbornih parametara.

Sintaksa:

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

Parametri:

niz: sličan_nizu

Ovo je izvorni niz koji želimo ispuniti.

pad_width: int, sekvenca ili array_like

Ovaj parametar definira broj vrijednosti koje su dopunjene do rubova svake osi. Jedinstvene širine jastučića za svaku os definirane su kao (prije_1, poslije_1), (prije_2, poslije_2), ... (prije_N, poslije_N)). Za svaku os, ((prije, poslije),) će se tretirati isto kao prije i poslije podloge. Za sve osi, int, ili (pad,) je prečac za prije = poslije = širina pad.

način: str ili funkcija (opcionalno)

Ovaj parametar ima jednu od sljedećih vrijednosti niza:

'konstanta' (zadano)

modeli strojnog učenja

Ako parametru moda dodijelimo konstantnu vrijednost, padding će se izvršiti s konstantnom vrijednošću.

'rub'

To je rubna vrijednost niza. Ispuna će se izvršiti s ovom vrijednosti ruba.

'linearna_rampa'

Ova se vrijednost koristi za izvođenje ispune s linearnom rampom između vrijednosti ruba i krajnje vrijednosti.

'maksimum'

Ova vrijednost parametra izvodi ispunjavanje korištenjem maksimalne vrijednosti dijela vektora ili svega, duž svake osi.

'značiti'

Ova vrijednost parametra vrši ispunu preko srednje vrijednosti dijela vektora ili svega, duž svake osi.

'medijan'

Ova vrijednost parametra vrši ispunu preko srednje vrijednosti dijela vektora ili cijeloga, duž svake osi.

'minimum'

Ova vrijednost parametra vrši ispunu preko minimalne vrijednosti dijela vektora ili svega, duž svake osi.

'reflektirati'

Ova vrijednost upotpunjuje polje putem vektorske refleksije, koja se zrcali na početnoj i završnoj vrijednosti vektora, duž svake osi.

'simetričan'

Ova se vrijednost koristi za punjenje niza putem vektorske refleksije, koja se zrcali duž ruba niza.

'omotati'

Ova se vrijednost koristi za izvođenje dopunjavanja niza prelamanjem vektora duž osi. Početne vrijednosti koriste se za popunjavanje kraja, a završne vrijednosti popunjavanje početka.

'prazan'

Ova se vrijednost koristi za punjenje niza nedefiniranim vrijednostima.

stat_length: int ili niz (izborno)

Ovaj se parametar koristi u 'maksimumu', 'minimumu', 'srednjoj vrijednosti', 'medijanu'. Definira broj vrijednosti na svakoj rubnoj osi, koje se koriste za izračun statičke vrijednosti.

konstantne_vrijednosti: skalar ili niz (izborno)

Ovaj parametar se koristi u 'konstanti'. Definira vrijednosti za postavljanje dopunjenih vrijednosti za svaku os.

krajnje_vrijednosti: skalar ili niz (izborno)

Ovaj se parametar koristi u 'linear_ramp'. Definira vrijednosti koje se koriste za posljednju vrijednost linear_ramp i formirat će rub podstavljenog niza.

reflect_type: parni ili neparni (izborno)

Ovaj se parametar koristi u 'symmetric' i 'reflect'. Prema zadanim postavkama, reflect_type je 'ujednačen' s nepromijenjenom refleksijom oko vrijednosti ruba. Oduzimanjem reflektiranih vrijednosti od dvostruke vrijednosti ruba, prošireni dio niza stvara se za 'čudan' stil.

Povratak:

podloga: ndarray

Ova funkcija vraća podstavljeno polje ranga jednakog polju, čiji se oblik povećava prema pad_width.

Primjer 1:

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

Izlaz:

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

U gornjem kodu

  • Uvezli smo numpy s alias imenom np.
  • Napravili smo popis vrijednosti x.
  • Deklarirali smo varijablu y i dodijelili vraćenu vrijednost funkcije np.pad().
  • Prošli smo popis x, pad_width, postavili način na konstantno i konstantne_vrijednosti u funkciji.
  • Na kraju, pokušali smo ispisati vrijednost y.

U izlazu prikazuje ndarray dopunjen definiranom veličinom i vrijednostima.

Primjer 2:

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

Izlaz:

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

Primjer 3:

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

Izlaz:

jednostavan alat za oblikovanje datuma u Javi
 array([-4, -2, 0, 1, 3, 2, 5, 4, 4, 5]) 

Primjer 4:

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

Izlaz:

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

Primjer 5:

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

Izlaz:

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

Primjer 6:

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

Izlaz:

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

Primjer 7:

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

Izlaz:

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

Primjer 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 

Izlaz:

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

U gornjem kodu

  • Uvezli smo numpy s alias imenom np.
  • Stvorili smo funkciju jastučić_sa s vektor , širina_podloge , iaxis , i kwargs .
  • Deklarirali smo varijablu pad_value da dobijemo vrijednosti za punjenje iz dobiti() funkcija.
  • Proslijedili smo vrijednosti popune u dio vektora.
  • Stvorili smo niz x pomoću funkcije np.arange() i promijenili oblik pomoću funkcije reshape().
  • Deklarirali smo varijablu y i dodijelili vraćenu vrijednost funkcije np.pad().
  • Proslijedili smo popis x i pad_width u funkciji
  • Na kraju, pokušali smo ispisati vrijednost y.

U izlazu prikazuje ndarray dopunjen definiranom veličinom i vrijednostima.

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

Izlaz:

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

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

Izlaz:

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