Python

Numpy básico: localizar valores únicos en arrays Numpy

Una de las tareas más habituales con los conjuntos de datos es la identificación de los valores únicos. Por eso Numpy cuenta con una función para ello: unique(). En esta entrada se verá como utilizar esta función.

La función unique()

La función de Numpy que permite localizar valores únicos en arrays es unique(), la cual se puede utilizar de la siguiente forma:

np.unique(arr, return_index=False, return_inverse=False, return_counts=False, axis=None)

donde

  • arr: es el array de Numpy en el que se van a buscar los valores únicos.
  • return_index: es un valor lógico opcional que indica si se tiene que devolver el índice de las ocurrencias de cada valor único. Su valor por defecto es falso.
  • return_inverse: es un valor lógico opcional que indica si se tiene que devolver un array con el que recuperar el original a partir de los valores únicos. Su valor por defecto es falso.
  • return_counts: es un valor lógico opcional que indica si se tiene que devolver el número de ocurrencias de cada valor. Su valor por defecto es falso.
  • axis: si no se indica nada se aplica sobre la matriz. Se puede indicar 0 o 1 para que se aplique sobre las filas o columnas respectivamente.

La función devuelve una array Numpy con los valores únicos o, según las opciones indicadas, tuplas con información adicional. A continuación, se pueden ver algunos ejemplos de uso de esta función.

Obtener los valores únicos en arrays Numpy

El uso básico de la función unique() es pasándole simplemente un array Numpy. Por ejemplo, se puede crear uno con valores duplicados y observar cómo se pueden obtener los que nos únicos.

import numpy as np

arr = np.array([12, 12, 9, 1, 2, 9, 8, 2, 1])

np.unique(arr)
array([ 1,  2,  8,  9, 12])

Identificar la primera aparición de los valores en arrays Numpy

Una de las opciones que tiene unique() es la posibilidad de devolver la posición de la primera ocurrencia de cada uno de los valores. Para ello se tiene que indicar el valor de return_index como verdadero. En tal caso se obtendrá una tupla con los valores únicos en primer lugar y las posiciones en el segundo. Algo que se puede ver en el siguiente ejemplo.

np.unique(arr, return_index=True)
(array([ 1,  2,  8,  9, 12]), array([3, 4, 6, 2, 0]))

Algo que se puede utilizar para recuperar los valores únicos a partir del vector original.

unique, indices = np.unique(arr, return_index=True)
arr[indices]

Contar el número de apariciones

Además de la posición también se puede obtener el número de ocurrencias de cada valor. Al igual que antes esto se indica en uno de los parámetros, en este caso return_counts. Con un funcionamiento similar al que se ha en el caso anterior.

np.unique(arr, return_counts=True)
(array([ 1,  2,  8,  9, 12]), array([2, 2, 1, 2, 2]))

Obtener un vector con que construir el original

Otra de la opciones que existen en unique() es la posibilidad de obtener un vector que permita recuperar el array original a partir del de únicos. Lo que depende de lo que se indique en la variable return_inverse. Lo que puede ser interesante en ciertas ocasiones.

unique, indices = np.unique(arr, return_inverse=True)
unique[indices]

En este ejemplo se puede apreciar cómo utilizar la salida de unique() para recuperar el array original a partir del de únicos.

Conclusiones

En esta entrada se ha visto la función unique() con la que es posible localizar valores únicos en arrays Numpy. Como se ha visto no solamente permite obtener los valores únicos, sino que también permite obtener las posiciones de estos y contar el número de ocurrencias. Por lo que es una función que se debe tener en cuenta.

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

Analytics Lane lanza ScoreFlow, un SaaS para construir y desplegar scorecards de crédito

En Analytics Lane seguimos evolucionando nuestras herramientas y damos un paso más con el lanzamiento…

5 días ago

DBSCAN y la selección de ε: teoría, intuición y aplicación práctica

Cuando hablamos de clustering, lo primero que viene a la mente suele ser k-means. Pero…

6 días ago

El bestiario de los indicadores económicos absurdos: El zoo patrio

Cualquier país desarrollado tiene sus propios indicadores folclóricos. España, por motivos que tienen mucho que…

2 semanas ago

Por qué el banco te ofrece un 3% TAE y no es lo que parece

Entras a la web de tu banco. En la página principal, un banner llamativo: “Depósito…

2 semanas ago

Analytics Lane lanza la versión 1.3 del laboratorio con nuevas herramientas de evaluación de modelos y utilidades prácticas

Seguimos ampliando el laboratorio de Analytics Lane con el lanzamiento de la versión 1.3, disponible…

2 semanas ago

This website uses cookies.