logo

numpy.pad() in Python

Il modulo numpy di Python fornisce una funzione chiamata numpy.pad() per eseguire il riempimento dell'array. Questa funzione ha diversi parametri obbligatori e facoltativi.

Sintassi:

 numpy.pad(array, pad_width, mode='constant', **kwargs) 

parametri:

array: tipo_array

Questo è l'array di origine che vogliamo riempire.

pad_width: int, sequenza o array_like

Questo parametro definisce il numero di valori che vengono riempiti sui bordi di ciascun asse. Le larghezze dei pad univoche per ciascun asse sono definite come (prima_1, dopo_1), (prima_2, dopo_2), ... (prima_N, dopo_N)). Per ciascun asse, ((prima, dopo),) verrà trattato come il pad prima e dopo. Per tutti gli assi, int, o (pad,) è una scorciatoia per prima = dopo = larghezza del pad.

modalità: str o funzione (opzionale)

Questo parametro ha uno dei seguenti valori stringa:

'costante'(impostazione predefinita)

convertire nfa in dfa

Se assegniamo un valore costante al parametro mode, il riempimento verrà effettuato con un valore costante.

'bordo'

È il valore del bordo dell'array. Il riempimento verrà eseguito con questo valore del bordo.

'rampa_lineare'

Questo valore viene utilizzato per eseguire il riempimento con la rampa lineare tra il valore del bordo e il valore finale.

'massimo'

Questo valore di parametro esegue il riempimento utilizzando il valore massimo di una parte del vettore o di tutti, lungo ciascun asse.

'Significare'

Questo valore di parametro esegue il riempimento tramite il valore medio di una parte del vettore o di tutti, lungo ciascun asse.

'mediano'

Questo valore di parametro esegue il riempimento tramite il valore mediano di una parte del vettore o di tutti, lungo ciascun asse.

'minimo'

Questo valore di parametro esegue il riempimento tramite il valore minimo di una parte del vettore o di tutti, lungo ciascun asse.

'riflettere'

Questo valore riempie l'array tramite la riflessione del vettore, che viene rispecchiata sui valori del vettore iniziale e finale, lungo ciascun asse.

'simmetrico'

Questo valore viene utilizzato per riempire l'array tramite la riflessione vettoriale, che viene specchiata lungo il bordo dell'array.

'avvolgere'

Questo valore viene utilizzato per eseguire il riempimento dell'array tramite l'avvolgimento del vettore lungo l'asse. I valori iniziali vengono utilizzati per riempire la fine, mentre i valori finali riempiono l'inizio.

'vuoto'

Questo valore viene utilizzato per riempire l'array con valori non definiti.

stat_length: int o sequenza (opzionale)

Questo parametro viene utilizzato in 'massimo', 'minimo', 'media', 'mediana'. Definisce il numero di valori su ciascun asse del bordo, utilizzati per calcolare il valore statico.

valori_costanti: scalare o sequenza (opzionale)

Questo parametro viene utilizzato in 'costante'. Definisce i valori per impostare i valori riempiti su ciascun asse.

end_values: scalare o sequenza (opzionale)

Questo parametro viene utilizzato in 'linear_ramp'. Definisce i valori che vengono utilizzati per l'ultimo valore di linear_ramp e formeranno il bordo dell'array imbottito.

reflect_type: pari o dispari (opzionale)

Questo parametro viene utilizzato in 'simmetrico' e 'riflesso'. Per impostazione predefinita, reflect_type è 'even' con una riflessione inalterata attorno al valore del bordo. Sottraendo i valori riflessi da due volte il valore del bordo, viene creata la parte estesa dell'array per lo stile 'dispari'.

Ritorna:

pad: ndarray

Questa funzione restituisce l'array imbottito di rango uguale all'array, la cui forma aumenta in base a pad_width.

Esempio 1:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'constant', constant_values=(6, 4)) y 

Produzione:

 array([6, 6, 6, 1, 3, 2, 5, 4, 4, 4]) 

Nel codice sopra

  • Abbiamo importato Numpy con il nome alias np.
  • Abbiamo creato un elenco di valori x.
  • Abbiamo dichiarato la variabile y e assegnato il valore restituito dalla funzione np.pad().
  • Abbiamo passato la lista x, pad_width, impostiamo la modalità su costante E valori_costanti nella funzione.
  • Infine, abbiamo provato a stampare il valore di y.

Nell'output, mostra un ndarray riempito con le dimensioni e i valori definiti.

Esempio 2:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'edge') y 

Produzione:

 array([1, 1, 1, 1, 3, 2, 5, 4, 4, 4]) 

Esempio 3:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'linear_ramp', end_values=(-4, 5)) y 

Produzione:

 array([-4, -2, 0, 1, 3, 2, 5, 4, 4, 5]) 

Esempio 4:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'maximum') y 

Produzione:

 array([5, 5, 5, 1, 3, 2, 5, 4, 5, 5, 5]) 

Esempio 5:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'mean') y 

Produzione:

 array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3]) 

Esempio 6:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'median') y 

Produzione:

 array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3]) 

Esempio 7:

 import numpy as np a = [[1, 2], [3, 4]] y = np.pad(x, (3,), 'minimum') y 

Produzione:

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

Esempio 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 

Produzione:

 array([41, 31, 21, 11, 21, 31, 41, 51, 41, 31]) 

Nel codice sopra

  • Abbiamo importato Numpy con il nome alias np.
  • Abbiamo creato una funzione pad_con con vettore , larghezza_pad , asse , E kwargs .
  • Abbiamo dichiarato la variabile pad_value per ottenere valori di riempimento dal file Ottenere() funzione.
  • Abbiamo passato i valori di riempimento alla parte del vettore.
  • Abbiamo creato un array x utilizzando la funzione np.arange() e modificato la forma utilizzando la funzione reshape().
  • Abbiamo dichiarato una variabile y e assegnato il valore restituito dalla funzione np.pad().
  • Abbiamo passato la lista x e pad_width nella funzione
  • Infine, abbiamo provato a stampare il valore di y.

Nell'output, mostra un ndarray riempito con le dimensioni e i valori definiti.

mediocre

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

Produzione:

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

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

Produzione:

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