Continuamos la serie de tutoriales básicos sobre Numpy explicando cómo seleccionar elementos en un Array de Numpy. Tanto en vectores unidimensionales como de más dimensiones. Posiblemente la selección de elementos es una de las tareas que se realiza con mayor frecuencia con los objetos de Numpy.
Para utilizar como ejemplo durante el resto de la entrada se creará un Array de Numpy con la función arrage()
como se muestra a continuación.
import numpy as np array = np.arange(1, 29, 3) array
array([ 1, 4, 7, 10, 13, 16, 19, 22, 25, 28])
Seleccionar un único elemento en un Array de Numpy
Para seleccionar un único elemento en un Array de Numpy se indica su posición entre corchetes después del nombre del objeto. Recordando que en Python la posición de los elementos empieza a contar el 0. Así, para obtener el segundo elemento del vector creado anteriormente se puede utilizar la siguiente línea de código.
array[1]
4
En donde se obtiene el valor 4 ya que se ha indicado el segundo elemento del vector, recordando otra vez que en Python el primer elemento es 0 no 1.
Seleccionar una parte de un Array de Numpy
Los corchetes no solamente permiten seleccionar un único elemento, sino que se pueden seleccionar una parte del objeto. Lo que se puede hacer mediante el uso del operador dos puntos. Indicando entre corchetes la posición del primer elemento, dos puntos y la posición posterior a la última que se desea seleccionar. Recordando que el operador dos puntos función de forma análoga a arange
, generando un vector desde la posición inicial hasta al anterior a la final. Esto se puede ver en un ejemplo en el que se selecciona los valores del segundo al quinto.
array[2:6]
array([ 7, 10, 13, 16])
Con lo que se obtiene el resultado esperado.
Una opción interésate que tiene el operador dos puntos es la posibilidad de omitir tanto el punto de inicio como el final. Así el vector se seleccionará desde el inicio hasta el final o desde el punto de inicio hasta el final. Por ejemplo, para ver los puntos desde el inicio hasta el quinto elemento se puede escribir
array[:5]
array([ 1, 4, 7, 10, 13])
Por otro lado, para seleccionar desde el sexto elemento hasta el final se puede utilizar la siguiente línea
array[5:]
array([16, 19, 22, 25, 28])
Es posible omitir tanto el punto de inicio como el final, con lo que se creará una copia del vector original.
Seleccionar los elementos en una matriz
Los elementos de una matriz se seleccionar prácticamente igual que en el caso de los vectores. Lo único que hay que tener en cuenta es que ahora el objeto tiene más dimensiones, por lo que es necesario suministrar esos dos valores separados por comas. En primer lugar, es necesario indicar la coordenada de la fila y el segundo el de la columna. Así se puede crear una matriz y seleccionar segundo elemento de la primera fila con el siguiente comando
array = np.arange(1, 10).reshape(3,3) array array[0, 1]
array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 2
Al igual que el caso unidimensional se puede utilizar el operador dos puntos para seleccionar un grupo de una fila o columna. O está en su conjunto si no se indica punto de inicio ni de fin. Por ejemplo, la segunda fila de la matriz se puede obtener con
array[1, :]
array([4, 5, 6])
Conclusiones
En el tutorial de hoy se ha visto cómo seleccionar elementos en un Array de Numpy tanto de una dimensión como de más. Posiblemente esta sea una de las tareas que se realizan más asiduamente con Numpy, por lo que es importante conocer bien las posibilidades que ofrece esta librería. O recordarlo, ya que con la práctica estas operaciones pueden llegar a ser mecánicas.
Imágenes: Pixabay (Marit Welker)
No te olvides valorar esta entrada
Suscríbete a nuestro boletín
Suscríbete al boletín semanal para estar al día de todas las publicaciones de Analytics Lane.