En ocasiones nos encontramos con que necesitamos invertir un array NumPy. Por ejemplo partimos del array:
numbers = np.array(["one", "two", "three", "four"])
numbers
array(['one', 'two', 'three', 'four'], dtype='<U5')
...y deseamos obtener el mismo array tras invertir sus elementos. Una opción es extraer los valores del array "hacia atrás":
numbers[::-1]
array(['four', 'three', 'two', 'one'], dtype='<U5')
Con la anterior expresión estamos recorriendo todo el array (desde el índice 0 hasta el último) saltando de -1 en -1. El resultado es el deseado, como podemos ver.
Otra opción es recurrir a la función np.flip(), que invierte los valores de un array a lo largo del eje que se indique. En nuestro ejemplo:
np.flip(numbers)
array(['four', 'three', 'two', 'one'], dtype='<U5')
Si se tratase de un array de más de una dimensión, podemos usar el parámetro axis para especificar el eje deseado:
a = np.arange(9).reshape(3, -1)
a
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
Ahora, si especificamos el eje 0 (valor por defecto), la ordenación se realiza en el eje vertical:
np.flip(a, axis = 0)
array([[6, 7, 8],
[3, 4, 5],
[0, 1, 2]])
...y si especificamos el eje 1, la ordenación se realiza en el eje horizontal:
np.flip(a, axis = 1)
array([[2, 1, 0],
[5, 4, 3],
[8, 7, 6]])