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