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

Curiosidad: El puerto 80 y los números de puerto

Durante décadas, cuando escribías una dirección web y pulsabas Intro, tu navegador hacía algo que…

3 días ago

Cómo Proyectar Cuándo Alcanzarás la Independencia Financiera

La independencia financiera es el punto en el que tus inversiones generan suficientes rendimientos para…

5 días ago

Cómo Elegir el Test de Hipótesis Correcto para tus Datos

Tienes dos grupos de datos y quieres saber si son estadísticamente distintos. O tienes una…

1 semana ago

Tuplas vs Listas en Python: parecen lo mismo, pero no

A primera vista, tuplas y listas son casi idénticas. Ambas guardan colecciones ordenadas de elementos.…

2 semanas ago

Qué significa realmente “calidad de datos”

"Nuestros datos no tienen buena calidad." Escuchas esto constantemente en reuniones. El problema es que…

2 semanas ago

Cómo Detectar Pseudo-IDs y Data Leakage en el Constructor de Scorecards

El artículo Data Leakage en Credit Scoring explicó por qué este es el error más…

3 semanas ago

This website uses cookies.