Arreglos de búsqueda NumPy


Buscando arreglos

Puede buscar en una matriz un determinado valor y devolver los índices que obtienen una coincidencia.

Para buscar una matriz, utilice el where()método.

Ejemplo

Encuentre los índices donde el valor es 4:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 4, 4])

x = np.where(arr == 4)

print(x)

El ejemplo anterior devolverá una tupla: (array([3, 5, 6],)

Lo que significa que el valor 4 está presente en el índice 3, 5 y 6.

Ejemplo

Encuentre los índices donde los valores son pares:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])

x = np.where(arr%2 == 0)

print(x)

Ejemplo

Encuentre los índices donde los valores son impares:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])

x = np.where(arr%2 == 1)

print(x)


Búsqueda ordenada

Hay un método llamado searchsorted()que realiza una búsqueda binaria en la matriz y devuelve el índice donde se insertaría el valor especificado para mantener el orden de búsqueda.

Se searchsorted()supone que el método se utiliza en matrices ordenadas.

Ejemplo

Encuentre los índices donde se debe insertar el valor 7:

import numpy as np

arr = np.array([6, 7, 8, 9])

x = np.searchsorted(arr, 7)

print(x)

Ejemplo explicado: El número 7 debe insertarse en el índice 1 para mantener el orden de clasificación.

El método inicia la búsqueda desde la izquierda y devuelve el primer índice donde el número 7 ya no es mayor que el siguiente valor.

Buscar desde el lado derecho

De forma predeterminada, se devuelve el índice más a la izquierda, pero podemos dar side='right'para devolver el índice más a la derecha en su lugar.

Ejemplo

Encuentre los índices donde se debe insertar el valor 7, comenzando desde la derecha:

import numpy as np

arr = np.array([6, 7, 8, 9])

x = np.searchsorted(arr, 7, side='right')

print(x)

Ejemplo explicado: El número 7 debe insertarse en el índice 2 para mantener el orden de clasificación.

El método inicia la búsqueda desde la derecha y devuelve el primer índice donde el número 7 ya no es menor que el siguiente valor.

Valores múltiples

Para buscar más de un valor, utilice una matriz con los valores especificados.

Ejemplo

Encuentre los índices donde se deben insertar los valores 2, 4 y 6:

import numpy as np

arr = np.array([1, 3, 5, 7])

x = np.searchsorted(arr, [2, 4, 6])

print(x)

El valor devuelto es una matriz: [1 2 3]contiene los tres índices donde 2, 4, 6 se insertarían en la matriz original para mantener el orden.


Ponte a prueba con ejercicios

Ejercicio:

Use el método NumPy correcto para encontrar todos los elementos con el valor 4.

arr = np.array([1, 2, 3, 4, 5, 4, 4])

x = np.(arr == 4)