Python

Numpy básico: como invertir arrays de Numpy

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().

Invertir vectores en Numpy

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

Invertir matrices en Numpy

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

Invertir solamente una fila o columna

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

Conclusiones

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)

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: NumPy

Recent Posts

Nueva Calculadora de Estadísticos Descriptivos en el laboratorio de aplicaciones de Analytics Lane

El laboratorio de aplicaciones interactivas de Analytics Lane incorpora una nueva herramienta pensada para resolver…

22 horas ago

Nuevo Inspector de JWT en el laboratorio de aplicaciones de Analytics Lane

El laboratorio de aplicaciones de Analytics Lane incorpora una nueva herramienta orientada al día a…

1 día ago

Nuevo simulador de regresión logística en el laboratorio de aplicaciones de Analytics Lane

El laboratorio de aplicaciones interactivas de Analytics Lane sigue creciendo con nuevas herramientas diseñadas para…

4 días ago

Nuevo simulador de regresión lineal con ruido en el laboratorio de aplicaciones de Analytics Lane

El laboratorio de aplicaciones interactivas de Analytics Lane sigue creciendo con nuevas herramientas orientadas a…

5 días ago

Nuevo detector de la Ley de Benford en el laboratorio de aplicaciones de Analytics Lane

El laboratorio de aplicaciones interactivas de Analytics Lane sigue ampliando su catálogo con herramientas diseñadas…

6 días ago

This website uses cookies.