Python modulis numpy nodrošina funkciju, ko sauc par numpy.pad(), lai veiktu pildījumu masīvā. Šai funkcijai ir vairāki obligāti un izvēles parametri.
Sintakse:
numpy.pad(array, pad_width, mode='constant', **kwargs)
Parametri:
masīvs: masīva_līdzīgs
Šis ir avota masīvs, kuru mēs vēlamies aizpildīt.
pad_width: int, secība vai masīva_līdzīgs
Šis parametrs nosaka vērtību skaitu, kas ir polsterētas katras ass malās. Unikālie spilventiņu platumi katrai asij ir definēti kā (pirms_1, pēc_1), (pirms_2, pēc_2), ... (pirms_N, pēc_N)). Katrai asij ((pirms, pēc)) tiks apstrādāta tāpat kā pirms un pēc spilventiņa. Visām asīm int vai (pad,) ir saīsne uz pirms = after = pad platums.
režīms: str vai funkcija (pēc izvēles)
Šim parametram ir viena no šīm virknes vērtībām:
'konstante' (noklusējums)
python saglabā json failā
Ja režīma parametram piešķiram nemainīgu vērtību, polsterējums tiks veikts ar nemainīgu vērtību.
'mala'
Tā ir masīva malas vērtība. Polsterējums tiks veikts ar šo malas vērtību.
'linear_ramp'
Šo vērtību izmanto, lai veiktu polsterējumu ar lineāru rampu starp malas vērtību un beigu vērtību.
'maksimums'
Šī parametra vērtība veic aizpildīšanu, izmantojot vektora daļas vai visas maksimālās vērtības katrā asī.
'nozīmē'
Šī parametra vērtība veic aizpildīšanu, izmantojot vektora daļas vai visas vidējās vērtības gar katru asi.
'mediāna'
Šī parametra vērtība veic aizpildīšanu, izmantojot vektora daļas vai visas daļas vidējo vērtību pa katru asi.
'minimums'
Šī parametra vērtība veic aizpildīšanu, izmantojot vektora daļas vai visas minimālo vērtību pa katru asi.
'atspoguļot'
Šī vērtība papildina masīvu, izmantojot vektora atspoguļojumu, kas tiek atspoguļots sākuma un beigu vektora vērtībās pa katru asi.
'simetrisks'
Šī vērtība tiek izmantota, lai pildītu masīvu, izmantojot vektora atspoguļojumu, kas tiek atspoguļots gar masīva malu.
'wrap'
Šo vērtību izmanto, lai veiktu masīva papildināšanu, izmantojot vektora aptīšanu gar asi. Sākuma vērtības tiek izmantotas, lai aizpildītu beigas, un beigu vērtības - sākuma.
'tukšs'
Šī vērtība tiek izmantota, lai papildinātu masīvu ar nenoteiktām vērtībām.
stat_length: int vai secība (neobligāti)
Šis parametrs tiek izmantots kā “maksimums”, “minimums”, “vidējais”, “vidējais”. Tas nosaka vērtību skaitu katrā malas asī, ko izmanto statiskās vērtības aprēķināšanai.
konstantes_vērtības: skalārs vai secība (neobligāti)
Šis parametrs tiek izmantots “konstante”. Tas nosaka vērtības polsterēto vērtību iestatīšanai katrai asij.
beigu_vērtības: skalārs vai secība (neobligāti)
Šis parametrs tiek izmantots parametrā 'linear_ramp'. Tas nosaka vērtības, kas tiek izmantotas linear_ramp pēdējai vērtībai, un veidos polsterētā masīva malu.
reflektēšanas_veids: pāra vai nepāra (neobligāti)
Šis parametrs tiek izmantots 'simetriski' un 'atspīdēt'. Pēc noklusējuma reflektēšanas_veids ir “vienmērīgs” ar nemainīgu atspulgu ap malas vērtību. Atņemot atspoguļotās vērtības no divkāršas malas vērtības, masīva paplašinātā daļa tiek izveidota nepāra stilam.
Atgriež:
spilventiņš: ndarray
Šī funkcija atgriež polsterēto ranga masīvu, kas ir vienāds ar masīvu, kura forma palielinās atkarībā no pad_width.
1. piemērs:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'constant', constant_values=(6, 4)) y
Izvade:
array([6, 6, 6, 1, 3, 2, 5, 4, 4, 4])
Iepriekš minētajā kodā
- Mēs esam importējuši numpy ar aizstājvārdu np.
- Mēs esam izveidojuši vērtību sarakstu x.
- Mēs esam deklarējuši mainīgo y un piešķīruši funkcijas np.pad() atgriezto vērtību.
- Mēs esam izturējuši sarakstu x, pad_width, iestatiet režīmu uz nemainīgs un konstantes_vērtības funkcijā.
- Visbeidzot, mēs mēģinājām izdrukāt y vērtību.
Izvadā tas parāda ndarray polsterējumu ar noteiktu izmēru un vērtībām.
2. piemērs:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'edge') y
Izvade:
array([1, 1, 1, 1, 3, 2, 5, 4, 4, 4])
3. piemērs:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'linear_ramp', end_values=(-4, 5)) y
Izvade:
array([-4, -2, 0, 1, 3, 2, 5, 4, 4, 5])
4. piemērs:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'maximum') y
Izvade:
array([5, 5, 5, 1, 3, 2, 5, 4, 5, 5, 5])
5. piemērs:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'mean') y
Izvade:
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
6. piemērs:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'median') y
Izvade:
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
7. piemērs:
import numpy as np a = [[1, 2], [3, 4]] y = np.pad(x, (3,), 'minimum') y
Izvade:
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. piemērs:
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
Izvade:
array([41, 31, 21, 11, 21, 31, 41, 51, 41, 31])
Iepriekš minētajā kodā
- Mēs esam importējuši numpy ar aizstājvārdu np.
- Mēs esam izveidojuši funkciju pad_ar ar vektors , pad_width , iaxis , un kwargs .
- Mēs esam deklarējuši mainīgo pad_value, lai iegūtu polsterējuma vērtības no gūt() funkciju.
- Mēs esam nodevuši aizpildījuma vērtības vektora daļai.
- Mēs esam izveidojuši masīvu x, izmantojot funkciju np.arange() un mainījuši formu, izmantojot funkciju reshape().
- Mēs esam deklarējuši mainīgo y un piešķīruši funkcijas np.pad() atgriezto vērtību.
- Funkcijā esam izturējuši sarakstu x un pad_width
- Visbeidzot, mēs mēģinājām izdrukāt y vērtību.
Izvadā tas parāda ndarray polsterējumu ar noteiktu izmēru un vērtībām.
mantošanas programma python
9. piemērs:
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)
Izvade:
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. piemērs:
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)
Izvade:
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]])