logo

numpy.pad() en Python

El módulo numpy de Python proporciona una función llamada numpy.pad() para realizar relleno en la matriz. Esta función tiene varios parámetros obligatorios y opcionales.

Sintaxis:

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

Parámetros:

matriz: tipo matriz

Esta es la matriz fuente que queremos rellenar.

pad_width: int, secuencia o tipo matriz

Este parámetro define el número de valores que se rellenan hasta los bordes de cada eje. Los anchos de pad únicos para cada eje se definen como (antes_1, después_1), (antes_2, después_2), ... (antes_N, después_N)). Para cada eje, ((antes, después)) se tratará de la misma manera que antes y después del pad. Para todos los ejes, int, o (pad,) es un atajo para antes = después = ancho del pad.

modo: str o función (opcional)

Este parámetro tiene uno de los siguientes valores de cadena:

'constante' (predeterminado)

25 de 100

Si asignamos un valor constante al parámetro modo, el relleno se realizará con un valor constante.

'borde'

Es el valor del borde de la matriz. El relleno se realizará con este valor de borde.

'rampa_lineal'

Este valor se utiliza para realizar el relleno con la rampa lineal entre el valor del borde y el valor final.

'máximo'

Este valor de parámetro realiza relleno utilizando el valor máximo de una parte del vector o de todo, a lo largo de cada eje.

'significar'

Este valor de parámetro realiza un relleno a través del valor medio de una parte del vector o de todo, a lo largo de cada eje.

'mediana'

Este valor de parámetro realiza un relleno a través del valor mediano de una parte del vector o de todo, a lo largo de cada eje.

'mínimo'

Este valor de parámetro realiza un relleno a través del valor mínimo de una parte del vector o de todo, a lo largo de cada eje.

'reflejar'

Este valor rellena la matriz mediante la reflexión del vector, que se refleja en los valores del vector inicial y final, a lo largo de cada eje.

'simétrico'

Este valor se utiliza para rellenar la matriz mediante la reflexión vectorial, que se refleja a lo largo del borde de la matriz.

'envoltura'

Este valor se utiliza para realizar el relleno de la matriz mediante la envoltura del vector a lo largo del eje. Los valores iniciales se utilizan para rellenar el final y los valores finales rellenan el comienzo.

'vacío'

Este valor se utiliza para rellenar la matriz con valores indefinidos.

stat_length: int o secuencia (opcional)

Este parámetro se utiliza en 'máximo', 'mínimo', 'media', 'mediana'. Define el número de valores en cada eje de borde, utilizados para calcular el valor estático.

valores_constantes: escalar o secuencia (opcional)

Este parámetro se utiliza en 'constante'. Define los valores para establecer los valores acolchados para cada eje.

end_values: escalar o secuencia (opcional)

Este parámetro se utiliza en 'linear_ramp'. Define los valores que se utilizan para el último valor de la rampa lineal y formarán el borde de la matriz rellena.

reflect_type: par o impar (opcional)

Este parámetro se utiliza en 'simétrico' y 'reflejo'. De forma predeterminada, reflect_type es 'par' con un reflejo inalterado alrededor del valor del borde. Al restar los valores reflejados de dos veces el valor del borde, se crea la parte extendida de la matriz para el estilo 'impar'.

Devoluciones:

almohadilla: ndarray

Esta función devuelve la matriz rellena de rango igual a la matriz, cuya forma aumenta según pad_width.

Ejemplo 1:

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

Producción:

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

En el código anterior

  • Hemos importado numpy con nombre de alias np.
  • Hemos creado una lista de valores x.
  • Hemos declarado la variable y y hemos asignado el valor devuelto de la función np.pad().
  • Hemos pasado la lista x, pad_width, configuramos el modo en constante y valores_constantes en la función.
  • Por último, intentamos imprimir el valor de y.

En el resultado, muestra un ndarray rellenado con el tamaño y los valores definidos.

Ejemplo 2:

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

Producción:

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

Ejemplo 3:

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

Producción:

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

Ejemplo 4:

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

Producción:

tutorial de pyspark
 array([5, 5, 5, 1, 3, 2, 5, 4, 5, 5, 5]) 

Ejemplo 5:

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

Producción:

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

Ejemplo 6:

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

Producción:

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

Ejemplo 7:

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

Producción:

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

Ejemplo 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 

Producción:

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

En el código anterior

  • Hemos importado numpy con nombre de alias np.
  • Hemos creado una función. pad_con con vector , ancho_pad , eje i , y kwargs .
  • Hemos declarado la variable pad_value para obtener valores de relleno del conseguir() función.
  • Hemos pasado los valores de relleno a la parte del vector.
  • Hemos creado una matriz x usando la función np.arange() y cambiamos la forma usando la función reshape().
  • Hemos declarado una variable y y hemos asignado el valor devuelto de la función np.pad().
  • Hemos pasado la lista x y pad_width en la función
  • Por último, intentamos imprimir el valor de y.

En el resultado, muestra un ndarray rellenado con el tamaño y los valores definidos.

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

Producción:

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

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

Producción:

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