logo

numpy.pad() Pythonban

A Python numpy modulja egy numpy.pad() nevű függvényt biztosít a tömb kitöltésére. Ennek a funkciónak számos kötelező és választható paramétere van.

Szintaxis:

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

Paraméterek:

tömb: array_like

Ez a forrástömb, amelyet ki akarunk tölteni.

pad_width: int, szekvencia vagy array_like

Ez a paraméter határozza meg az egyes tengelyek éleihez kitömött értékek számát. Az egyes tengelyek egyedi padszélességei a következők: (előtt_1, utána_1), (előtt_2, utána_2), ... (előtt_N, utána_N)). Minden tengely esetében az ((előtt, után)) ugyanúgy lesz kezelve, mint a pad előtt és után. Minden tengely esetén az int vagy (pad,) egy parancsikon az előtt = után = pad szélessége.

mód: str vagy függvény (opcionális)

Ez a paraméter a következő karakterlánc-értékek egyikével rendelkezik:

'állandó' (alapértelmezett)

hány éves Kylie Jenner

Ha a mód paraméterhez állandó értéket rendelünk, akkor a kitöltés állandó értékkel történik.

'él'

Ez a tömb élértéke. A kitöltés ezzel az élértékkel történik.

'lineáris_rámpa'

Ez az érték az élérték és a végérték közötti lineáris rámpával való kitöltésre szolgál.

'maximális'

Ez a paraméterérték a vektor egy részének vagy egészének maximális értékével tölti ki az egyes tengelyek mentén.

'átlagos'

Ez a paraméterérték a vektor egy részének vagy egészének középértékén keresztül tölti ki az egyes tengelyek mentén.

'középső'

Ez a paraméterérték az egyes tengelyek mentén a vektor egy részének vagy egészének mediánértékén keresztül való feltöltést hajt végre.

'minimális'

Ez a paraméterérték az egyes tengelyek mentén egy vektorrész vagy az egész minimális értékén keresztül hajtja végre a kitöltést.

'tükrözni'

Ez az érték vektorreflexióval párnázza ki a tömböt, amely tükröződik a kezdő és záró vektorértékeken, minden tengely mentén.

'szimmetrikus'

Ez az érték a tömb kitöltésére szolgál vektorreflexióval, amely tükröződik a tömb széle mentén.

'betakar'

Ez az érték a tömb kitöltésére szolgál a vektor tengely mentén történő tekercselésével. A kezdő értékek a vég kitöltésére, a végértékek pedig az eleje kitöltésére szolgálnak.

'üres'

Ez az érték a tömb definiálatlan értékekkel való feltöltésére szolgál.

stat_length: int vagy szekvencia (opcionális)

Ezt a paramétert a 'maximum', 'minimum', 'mean' és 'medián' értékekben használják. Meghatározza a statikus érték kiszámításához használt értékek számát az egyes éltengelyeken.

állandó_értékek: skalár vagy sorozat (opcionális)

Ezt a paramétert „konstans”-ban használják. Meghatározza a párnázott értékek beállításához szükséges értékeket az egyes tengelyekhez.

end_values: skalár vagy sorozat (nem kötelező)

Ezt a paramétert a 'linear_ramp' használja. Meghatározza azokat az értékeket, amelyeket a linear_ramp utolsó értékéhez használunk, és a kitöltött tömb élét alkotják.

tükrözési_típus: páros vagy páratlan (nem kötelező)

Ezt a paramétert a „szimmetrikus” és a „tükrözés” paraméterekben használják. Alapértelmezés szerint a reflektáló_típus 'páros', változatlan tükröződéssel az él körül. A tükrözött értékeket az él értékének kétszereséből kivonva a tömb kibővített része a „páratlan” stílushoz jön létre.

Visszaküldés:

pad: ndarray

Ez a függvény visszaadja a kitömött rangú tömböt, amely megegyezik a tömbbel, amelynek alakja a pad_width szerint nő.

1. példa:

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

Kimenet:

java hozzáadása a tömbhöz
 array([6, 6, 6, 1, 3, 2, 5, 4, 4, 4]) 

A fenti kódban

  • Importáltuk a numpy-t np aliasnévvel.
  • Létrehoztuk az x értékek listáját.
  • Deklaráltuk az y változót, és hozzárendeltük az np.pad() függvény visszaadott értékét.
  • Átadtuk az x listát, pad_width, állítsa be a módot állandó és állandó_értékek a függvényben.
  • Végül megpróbáltuk kinyomtatni az y értékét.

A kimenetben egy ndarray-t mutat ki a megadott mérettel és értékekkel.

2. példa:

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

Kimenet:

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

3. példa:

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

Kimenet:

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

4. példa:

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

Kimenet:

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

5. példa:

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

Kimenet:

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

6. példa:

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

Kimenet:

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

7. példa:

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

Kimenet:

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

8. példa:

 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 

Kimenet:

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

A fenti kódban

  • Importáltuk a numpy-t np aliasnévvel.
  • Létrehoztunk egy függvényt pad_val val vel vektor , pad_szélessége , iaxis , és kwargs .
  • Deklaráltuk a pad_value változót, hogy kitöltési értékeket kapjunk a kap() funkció.
  • A kitöltési értékeket átadtuk a vektor részének.
  • Létrehoztunk egy x tömböt az np.arange() függvénnyel, és megváltoztattuk az alakzatot a reshape() függvénnyel.
  • Deklaráltunk egy y változót, és hozzárendeltük az np.pad() függvény visszaadott értékét.
  • A függvényben átadtuk az x listát és a pad_width-t
  • Végül megpróbáltuk kinyomtatni az y értékét.

A kimenetben egy ndarray-t mutat ki a megadott mérettel és értékekkel.

9. példa:

 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) 

Kimenet:

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

10. példa:

 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) 

Kimenet:

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