Moduł numpy języka Python udostępnia funkcję o nazwie numpy.pad() służącą do uzupełniania tablicy. Funkcja ta ma kilka wymaganych i opcjonalnych parametrów.
Składnia:
numpy.pad(array, pad_width, mode='constant', **kwargs)
Parametry:
tablica: tablica_podobna
To jest tablica źródłowa, którą chcemy wypełnić.
pad_width: int, sekwencja lub array_like
Ten parametr określa liczbę wartości dopełnionych do krawędzi każdej osi. Unikalne szerokości podkładek dla każdej osi są zdefiniowane jako (przed_1, po_1), (przed_2, po_2), ... (przed_N, po_N)). Dla każdej osi ((przed, po)) będzie traktowane tak samo jak przed i po podkładce. Dla wszystkich osi int lub (pad) jest skrótem do before = after = szerokość padu.
tryb: str lub funkcja (opcjonalnie)
Ten parametr ma jedną z następujących wartości ciągu:
„stała” (domyślnie)
xor kpp
Jeśli przypiszemy stałą wartość do parametru mode, dopełnienie zostanie wykonane stałą wartością.
'krawędź'
Jest to wartość brzegowa tablicy. Wypełnienie zostanie wykonane z tą wartością krawędzi.
„liniowa_rampa”
Ta wartość służy do wypełniania liniową rampą pomiędzy wartością krawędziową a wartością końcową.
'maksymalny'
Ta wartość parametru powoduje wypełnienie przy użyciu maksymalnej wartości części wektora lub całości wzdłuż każdej osi.
'mieć na myśli'
Ta wartość parametru powoduje wypełnienie wartością średnią części wektora lub całości, wzdłuż każdej osi.
'mediana'
Ta wartość parametru powoduje wypełnienie wartością mediany części wektora lub całości, wzdłuż każdej osi.
'minimum'
Ta wartość parametru powoduje wypełnienie wartości minimalnej części wektora lub całości wzdłuż każdej osi.
'odbijać'
Ta wartość wypełnia tablicę poprzez odbicie wektora, które jest odzwierciedlane na wartościach wektora początkowego i końcowego, wzdłuż każdej osi.
'symetryczny'
Ta wartość jest używana do wypełnienia tablicy poprzez odbicie wektorowe, które jest odbijane wzdłuż krawędzi tablicy.
'zawinąć'
Ta wartość służy do wypełniania tablicy poprzez zawinięcie wektora wzdłuż osi. Wartości początkowe służą do dopełnienia końca, a wartości końcowe do wypełnienia początku.
'pusty'
Ta wartość służy do wypełniania tablicy niezdefiniowanymi wartościami.
stat_length: int lub sekwencja (opcjonalnie)
Ten parametr jest używany w parametrach „maksimum”, „minimum”, „średnia” i „mediana”. Określa liczbę wartości na każdej osi krawędzi, na podstawie której obliczana jest wartość statyczna.
stałe_wartości: skalarne lub sekwencyjne (opcjonalnie)
Ten parametr jest używany w „stałej”. Definiuje wartości do ustawiania wartości dopełnionych dla każdej osi.
wartości_końcowe: skalarne lub sekwencyjne (opcjonalnie)
Ten parametr jest używany w „linear_ramp”. Definiuje wartości, które są używane dla ostatniej wartości linear_ramp i utworzą krawędź uzupełnionej tablicy.
co to oznacza xd
reflektuj_typ: parzysty lub nieparzysty (opcjonalnie)
Ten parametr jest używany w parametrach „symetryczny” i „odzwierciedlający”. Domyślnie typ odbicia jest „równy” z niezmiennym odbiciem wokół wartości krawędzi. Odejmując odbite wartości od dwukrotności wartości krawędzi, tworzona jest rozszerzona część tablicy dla stylu „nieparzystego”.
Zwroty:
pad: ndarray
Ta funkcja zwraca wypełnioną tablicę o randze równej tablicy, której kształt zwiększa się zgodnie z pad_width.
Przykład 1:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'constant', constant_values=(6, 4)) y
Wyjście:
array([6, 6, 6, 1, 3, 2, 5, 4, 4, 4])
W powyższym kodzie
- Zaimportowaliśmy numpy z aliasem np.
- Stworzyliśmy listę wartości x.
- Zadeklarowaliśmy zmienną y i przypisaliśmy wartość zwróconą przez funkcję np.pad().
- Przekazaliśmy listę x, pad_width, ustawiliśmy tryb na stały I stałe_wartości w funkcji.
- Na koniec próbowaliśmy wydrukować wartość y.
Na wyjściu widoczny jest ndarray uzupełniony zdefiniowanym rozmiarem i wartościami.
Przykład 2:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'edge') y
Wyjście:
array([1, 1, 1, 1, 3, 2, 5, 4, 4, 4])
Przykład 3:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'linear_ramp', end_values=(-4, 5)) y
Wyjście:
array([-4, -2, 0, 1, 3, 2, 5, 4, 4, 5])
Przykład 4:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'maximum') y
Wyjście:
array([5, 5, 5, 1, 3, 2, 5, 4, 5, 5, 5])
Przykład 5:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'mean') y
Wyjście:
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
Przykład 6:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'median') y
Wyjście:
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
Przykład 7:
import numpy as np a = [[1, 2], [3, 4]] y = np.pad(x, (3,), 'minimum') y
Wyjście:
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]])
Przykład 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
Wyjście:
array([41, 31, 21, 11, 21, 31, 41, 51, 41, 31])
W powyższym kodzie
- Zaimportowaliśmy numpy z aliasem np.
- Stworzyliśmy funkcję pad_z z wektor , szerokość_podkładki , ioś , I kwargs .
- Zadeklarowaliśmy zmienną pad_value, aby uzyskać wartości dopełnienia z Dostawać() funkcjonować.
- Przekazaliśmy wartości dopełnienia do części wektora.
- Stworzyliśmy tablicę x za pomocą funkcji np.arange() i zmieniliśmy kształt za pomocą funkcji reshape().
- Zadeklarowaliśmy zmienną y i przypisaliśmy wartość zwróconą przez funkcję np.pad().
- W funkcji przekazaliśmy listę x i pad_width
- Na koniec próbowaliśmy wydrukować wartość y.
Na wyjściu widoczny jest ndarray uzupełniony zdefiniowanym rozmiarem i wartościami.
Przykład 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)
Wyjście:
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]])
Przykład 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)
Wyjście:
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]])