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])
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.
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.
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])
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)
En las cuatro entregas anteriores recorrimos los disparates más folclóricos del género: faldas que predicen…
En Analytics Lane seguimos evolucionando nuestras herramientas y damos un paso más con el lanzamiento…
Cuando hablamos de clustering, lo primero que viene a la mente suele ser k-means. Pero…
Cualquier país desarrollado tiene sus propios indicadores folclóricos. España, por motivos que tienen mucho que…
Entras a la web de tu banco. En la página principal, un banner llamativo: “Depósito…
Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.3, disponible…
This website uses cookies.