Una de las tareas básicas que más me preguntan es cómo invertir vectores o matrices. En esta entrada vamos a ver diferentes métodos para invertir arrays de Numpy. Para lo que usaremos el operador [] y el método np.flip().
Como siempre lo primero que tenemos que hacer para invertir un vector en Numpy es importar la librería y un vector para trabajar. En este ejemplo podemos utilizar un vector básico.
import numpy as np arr = np.array([1,2,3,4,5]) arr
array([1, 2, 3, 4, 5])
La manera más rápida de inferir el vector es utilizando el operador [], escribiendo simplemente
arr[::-1]
array([5, 4, 3, 2, 1])
Como se puede ver el vector que se obtiene ha invertido los valores. El funcionamiento de este método es sencillo, solamente hay que recordar el funcionamiento del operador : en []. La forma básica de este operador es arr[start:end:stepsize], con lo que crea un nuevo vector con los elementos desde start hasta el anterior a end en los pasos indicados en stepsize. En el caso de que se omita start los elementos se seleccionarán desde el principio y si se omite end los elementos finalizarán en el último.
Otro método para invertir arrays de Numpy es el método np.flip().
np.flip(arr)
array([5, 4, 3, 2, 1])
Al igual que en el caso de los vectores, para invertir una matriz primero hemos de crear o importar una. Por un lado se puede conseguir con el operador []
arr2D = np.array([[11, 12, 13],
[21, 22, 23],
[31, 32, 33]])
arr2D[::-1] array([[31, 32, 33],
[21, 22, 23],
[11, 12, 13]])
Alternativamente también se puede probar con el método np.flip()
np.flip(arr2D)
array([[31, 32, 33],
[21, 22, 23],
[11, 12, 13]])
Por otro lado si estamos interesados en invertir las columnas también se puede utilizar el operador []. Pero en este caso hay que indicar que use las columnas
arr2D[:,::-1]
array([[13, 12, 11],
[23, 22, 21],
[33, 32, 31]])
Finalmente el método np.flip() dispone de la opción axis para indicar si se desea invertir la matriz por filas o columnas. Por defecto el valor es 0, lo que indica invertir filas, si queremos invertir por columnas se puede indicar con el valor 1.
np.flip(arr2D, axis=1)
array([[13, 12, 11],
[23, 22, 21],
[33, 32, 31]])
Si solamente necesitamos invertir una o varias filas se puede indicar que solamente opere sobre estas. Aunque en este caso hay que recordar guardar el resultado solamente en la columna o columnas correspondientes.
arr2D[:, 1] = arr2D[::-1, 1] arr2D
array([[11, 32, 13],
[21, 22, 23],
[31, 12, 33]])
Finalmente, invertir una sola columna es un proceso completamente análogo.
arr2D[1] = arr2D[1, ::-1] arr2D
array([[11, 32, 13],
[23, 22, 21],
[31, 12, 33]])
En esta entrada se ha visto cómo invertir arrays de Numpy, tanto vectores como matrices. Unas operaciones que son muy habituales y es importante conocerlas bien para mejorar nuestra productividad.
Imágenes: Pixabay (Marit Welker)
Seguimos con esta serie sobre inteligencia artificial y chatbots en la que exploramos cómo funcionan…
El laboratorio de aplicaciones interactivas de Analytics Lane incorpora una nueva herramienta pensada para resolver…
El laboratorio de aplicaciones de Analytics Lane incorpora una nueva herramienta orientada al día a…
El laboratorio de aplicaciones interactivas de Analytics Lane sigue creciendo con nuevas herramientas diseñadas para…
El laboratorio de aplicaciones interactivas de Analytics Lane sigue creciendo con nuevas herramientas orientadas a…
El laboratorio de aplicaciones interactivas de Analytics Lane sigue ampliando su catálogo con herramientas diseñadas…
This website uses cookies.