Modul numpy Pythonu poskytuje funkci nazvanou numpy.pad() pro provádění výplně v poli. Tato funkce má několik povinných a volitelných parametrů.
Syntax:
numpy.pad(array, pad_width, mode='constant', **kwargs)
Parametry:
pole: array_like
Toto je zdrojové pole, které chceme doplnit.
pad_width: int, sekvence nebo pole
Tento parametr definuje počet hodnot, které jsou doplněny k okrajům každé osy. Jedinečné šířky podložek pro každou osu jsou definovány jako (before_1, after_1), (before_2, after_2), ... (before_N, after_N)). Pro každou osu bude ((před, po),) zacházeno stejně jako před a za podložkou. Pro všechny osy je int nebo (pad,) zkratkou před = po = šířka podložky.
režim: str nebo funkce (volitelné)
Tento parametr má jednu z následujících hodnot řetězce:
'konstantní' (výchozí)
python generuje uuid
Pokud parametru mode přiřadíme konstantní hodnotu, bude výplň provedena konstantní hodnotou.
'okraj'
Je to okrajová hodnota pole. Výplň bude provedena s touto hodnotou hrany.
'linear_ramp'
Tato hodnota se používá k provedení výplně s lineární rampou mezi hodnotou hrany a koncovou hodnotou.
'maximum'
Tato hodnota parametru provádí výplň pomocí maximální hodnoty vektorové části nebo všech podél každé osy.
'znamenat'
Tato hodnota parametru provádí výplň prostřednictvím střední hodnoty části vektoru nebo všech podél každé osy.
'medián'
Tato hodnota parametru provádí výplň prostřednictvím střední hodnoty části vektoru nebo všech podél každé osy.
'minimální'
Tato hodnota parametru provádí výplň prostřednictvím minimální hodnoty vektorové části nebo všech podél každé osy.
'reflektovat'
Tato hodnota vyplní pole prostřednictvím vektorového odrazu, který se zrcadlí na počáteční a koncové vektorové hodnotě podél každé osy.
'symetrický'
Tato hodnota se používá k vyplnění pole pomocí vektorového odrazu, který se zrcadlí podél okraje pole.
'zabalit'
Tato hodnota se používá k provedení výplně pole prostřednictvím zalomení vektoru podél osy. Počáteční hodnoty se používají pro doplnění konce a koncové hodnoty pro vyplnění začátku.
'prázdný'
Tato hodnota se používá k vyplnění pole nedefinovanými hodnotami.
stat_length: int nebo sekvence (volitelné)
Tento parametr se používá v 'maximum', 'minimum', 'mean', 'medián'. Definuje počet hodnot na každé ose hrany, které se používají pro výpočet statické hodnoty.
konstantní_hodnoty: skalární nebo sekvence (volitelné)
Tento parametr se používá v 'konstantě'. Definuje hodnoty pro nastavení vycpaných hodnot pro každou osu.
věk shilpa shetty
koncové_hodnoty: skalární nebo sekvence (volitelné)
Tento parametr se používá v 'linear_ramp'. Definuje hodnoty, které se použijí pro poslední hodnotu linear_ramp a budou tvořit okraj vyplňovaného pole.
Reflect_type: sudý nebo lichý (nepovinné)
Tento parametr se používá v 'symmetric' a 'reflex'. Ve výchozím nastavení je typ reflect_type 'sudý' s nezměněným odrazem kolem hodnoty hrany. Odečtením odražených hodnot od dvojnásobku hodnoty hrany se vytvoří rozšířená část pole pro „lichý“ styl.
Vrácení:
podložka: ndarray
Tato funkce vrací vycpané pole s hodností rovnající se poli, jehož tvar se zvětšuje podle pad_width.
Pří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ýstup:
array([6, 6, 6, 1, 3, 2, 5, 4, 4, 4])
Ve výše uvedeném kódu
- Importovali jsme numpy s aliasem np.
- Vytvořili jsme seznam hodnot x.
- Deklarovali jsme proměnnou y a přiřadili vrácenou hodnotu funkce np.pad().
- Předali jsme seznam x, pad_width, nastavte režim na konstantní a konstantní_hodnoty ve funkci.
- Nakonec jsme zkusili vytisknout hodnotu y.
Ve výstupu se zobrazí ndarray vyplněný definovanou velikostí a hodnotami.
Příklad 2:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'edge') y
Výstup:
array([1, 1, 1, 1, 3, 2, 5, 4, 4, 4])
Pří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ýstup:
array([-4, -2, 0, 1, 3, 2, 5, 4, 4, 5])
Příklad 4:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'maximum') y
Výstup:
array([5, 5, 5, 1, 3, 2, 5, 4, 5, 5, 5])
Příklad 5:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'mean') y
Výstup:
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
Příklad 6:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'median') y
Výstup:
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
Příklad 7:
import numpy as np a = [[1, 2], [3, 4]] y = np.pad(x, (3,), 'minimum') y
Výstup:
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]])
Pří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ýstup:
array([41, 31, 21, 11, 21, 31, 41, 51, 41, 31])
Ve výše uvedeném kódu
- Importovali jsme numpy s aliasem np.
- Vytvořili jsme funkci podložka_s s vektor , šířka_podložky , iaxis , a kwargové .
- Deklarovali jsme proměnnou pad_value pro získání hodnot výplně z dostat() funkce.
- Předali jsme hodnoty výplně do části vektoru.
- Vytvořili jsme pole x pomocí funkce np.arange() a změnili tvar pomocí funkce reshape().
- Deklarovali jsme proměnnou y a přiřadili vrácenou hodnotu funkce np.pad().
- Ve funkci jsme předali seznam x a pad_width
- Nakonec jsme zkusili vytisknout hodnotu y.
Ve výstupu se zobrazí ndarray vyplněný definovanou velikostí a hodnotami.
Pří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ýstup:
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]])
Pří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ýstup:
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]])