De numpy-module van Python biedt een functie genaamd numpy.pad() om opvulling in de array uit te voeren. Deze functie heeft verschillende vereiste en optionele parameters.
Syntaxis:
numpy.pad(array, pad_width, mode='constant', **kwargs)
Parameters:
array: array_like
Dit is de bronarray die we willen opvullen.
pad_width: int, reeks of array_like
Deze parameter definieert het aantal waarden dat wordt opgevuld naar de randen van elke as. De unieke padbreedtes voor elke as worden gedefinieerd als (voor_1, na_1), (voor_2, na_2), ... (voor_N, na_N)). Voor elke as wordt ((voor, na)) op dezelfde manier behandeld als voor en na pad. Voor alle assen is de int, of (pad,) een kortere weg naar before = after = padbreedte.
modus: str of functie (optioneel)
Deze parameter heeft een van de volgende tekenreekswaarden:
'constant' (standaard)
kan een abstracte klasse een constructor hebben?
Als we een constante waarde toewijzen aan de modusparameter, wordt opvulling uitgevoerd met een constante waarde.
'rand'
Het is de randwaarde van de array. De opvulling wordt uitgevoerd met deze randwaarde.
'lineaire_ramp'
Deze waarde wordt gebruikt om opvulling uit te voeren met de lineaire helling tussen de randwaarde en de eindwaarde.
'maximum'
Deze parameterwaarde voert opvulling uit door de maximale waarde van een vectordeel of alles langs elke as te gebruiken.
'gemeen'
Deze parameterwaarde voert opvulling uit via de gemiddelde waarde van een vectordeel of alles, langs elke as.
'mediaan'
Deze parameterwaarde voert opvulling uit via de mediaanwaarde van een vectordeel of alles, langs elke as.
'minimum'
Deze parameterwaarde voert opvulling uit via de minimale waarde van een vectordeel of alles, langs elke as.
'reflecteren'
Deze waarde vult de array op via vectorreflectie, die wordt gespiegeld op de begin- en eindvectorwaarden, langs elke as.
'symmetrisch'
Deze waarde wordt gebruikt om de array op te vullen via vectorreflectie, die langs de rand van de array wordt gespiegeld.
'wrap'
Deze waarde wordt gebruikt om de array op te vullen via de omloop van de vector langs de as. De startwaarden worden gebruikt voor het opvullen van het einde, en de eindwaarden voor het begin.
'leeg'
Deze waarde wordt gebruikt om de array op te vullen met ongedefinieerde waarden.
stat_length: int of reeks (optioneel)
Deze parameter wordt gebruikt in 'maximum', 'minimum', 'gemiddelde', 'mediaan'. Het definieert het aantal waarden op elke randas, gebruikt voor het berekenen van de statische waarde.
constante_waarden: scalair of reeks (optioneel)
Deze parameter wordt gebruikt in 'constant'. Het definieert de waarden voor het instellen van de opgevulde waarden voor elke as.
eindwaarden: scalair of reeks (optioneel)
Deze parameter wordt gebruikt in 'linear_ramp'. Het definieert de waarden die worden gebruikt voor de laatste waarde van de lineaire_ramp en vormen de rand van de opgevulde array.
reflect_type: even of oneven (optioneel)
Deze parameter wordt gebruikt in 'symmetrisch' en 'reflecteren'. Standaard is het reflect_type 'even' met een ongewijzigde reflectie rond de randwaarde. Door de gereflecteerde waarden af te trekken van twee keer de randwaarde, wordt het uitgebreide deel van de array gemaakt voor de 'oneven' stijl.
Geeft terug:
pad: ndarray
Deze functie retourneert de opgevulde array met een rang die gelijk is aan de array, waarvan de vorm toeneemt volgens pad_width.
subtekenreeks van tekenreeks Java
Voorbeeld 1:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'constant', constant_values=(6, 4)) y
Uitgang:
array([6, 6, 6, 1, 3, 2, 5, 4, 4, 4])
In de bovenstaande code
- We hebben numpy geïmporteerd met aliasnaam np.
- We hebben een lijst met waarden x gemaakt.
- We hebben de variabele y gedeclareerd en de geretourneerde waarde van de functie np.pad() toegewezen.
- We hebben de lijst x, pad_width, doorgegeven en de modus ingesteld constante En constante_waarden in de functie.
- Ten slotte hebben we geprobeerd de waarde van y af te drukken.
In de uitvoer wordt een ndarray weergegeven, opgevuld met de gedefinieerde grootte en waarden.
Voorbeeld 2:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'edge') y
Uitgang:
array([1, 1, 1, 1, 3, 2, 5, 4, 4, 4])
Voorbeeld 3:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'linear_ramp', end_values=(-4, 5)) y
Uitgang:
array([-4, -2, 0, 1, 3, 2, 5, 4, 4, 5])
Voorbeeld 4:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'maximum') y
Uitgang:
array([5, 5, 5, 1, 3, 2, 5, 4, 5, 5, 5])
Voorbeeld 5:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'mean') y
Uitgang:
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
Voorbeeld 6:
import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'median') y
Uitgang:
array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3])
Voorbeeld 7:
import numpy as np a = [[1, 2], [3, 4]] y = np.pad(x, (3,), 'minimum') y
Uitgang:
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]])
Voorbeeld 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
Uitgang:
array([41, 31, 21, 11, 21, 31, 41, 51, 41, 31])
In de bovenstaande code
- We hebben numpy geïmporteerd met aliasnaam np.
- We hebben een functie gemaakt pad_met met vector , pad_breedte , iaxis , En kwargs .
- We hebben de variabele pad_value gedeclareerd om opvulwaarden uit de krijgen() functie.
- We hebben de opvulwaarden doorgegeven aan het deel van de vector.
- We hebben een array x gemaakt met de functie np.arange() en de vorm gewijzigd met de functie reshape().
- We hebben een variabele y gedeclareerd en de geretourneerde waarde van de functie np.pad() toegewezen.
- We hebben de lijst x en pad_width in de functie doorgegeven
- Ten slotte hebben we geprobeerd de waarde van y af te drukken.
In de uitvoer wordt een ndarray weergegeven, opgevuld met de gedefinieerde grootte en waarden.
Voorbeeld 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)
Uitgang:
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]])
Voorbeeld 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)
Uitgang:
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]])