Buscando en una array NumPy

Numpy proporciona varios métodos para buscar diferentes tipos de valores numéricos; en este artículo, cubriremos dos importantes.

  • numpy.where()
  • numpy.búsquedaordenada()

1. numpy.where:() Devuelve los índices de los elementos en una array de entrada donde se cumple la condición dada.

Sintaxis: numpy.where(condición[, x, y])

Parámetros:

  • condición: cuando es verdadero, produce x, de lo contrario, produce y.
  • x, y : Valores entre los que elegir. x, y y la condición deben poder transmitirse a alguna forma.

Devuelve:
out : [ndarray o tupla de ndarrays] Si se especifican tanto x como y, la array de salida contiene elementos de x donde la condición es verdadera y elementos de y en cualquier otro lugar.

Si solo se da la condición, devuelve la tupla condition.nonzero(), los índices donde condition es True.

El siguiente ejemplo demuestra cómo buscar usando where() .

Python3

# importing the module
import numpy as np
  
# creating the array
arr = np.array([10, 32, 30, 50, 20, 82, 91, 45])
  
#  printing arr
print("arr = {}".format(arr))
  
#  looking for value 30 in arr and storing its index in i
i = np.where(arr == 30)
print("i = {}".format(i))

Producción:

arr = [10 32 30 50 20 82 91 45]
i = (array([2], dtype=int64),)

Como puede ver, la variable i es iterable con el índice de nuestro valor buscado como primer elemento. Podemos hacer que se vea mejor reemplazando la última declaración de impresión con

print("i = {}".format(i[0]))

Esto cambiará la salida final a

arr = [10 32 30 50 20 82 91 45]
i = [2]

2. numpy.searchsorted(): la función se usa para encontrar los índices en una array ordenada de tal manera que, si los elementos se insertan antes de los índices, el orden de arr aún se conservaría. Aquí, se utiliza una búsqueda binaria para encontrar los índices de inserción requeridos.

Sintaxis: numpy.searchsorted(arr, num, side=’left’, sorter=Ninguno)

Parámetros:

  • arr : [array_like] Array de entrada. Si sorter es None, entonces debe ordenarse en orden ascendente; de ​​lo contrario, sorter debe ser una array de índices que lo ordenen.
  • num: [array_like] Los valores que queremos insertar en arr.
  • lado: [‘izquierda’, ‘derecha’], opcional. Si es ‘izquierda’, se proporciona el índice de la primera ubicación adecuada encontrada. Si es ‘correcto’, devuelve el último índice de este tipo. Si no hay un índice adecuado, devuelve 0 o N (donde N es la longitud de a).
  • num : [array_like, Optional] array de índices enteros que ordenan la array a en orden ascendente. Por lo general, son el resultado de argsort.

Devuelve: [índices], array de puntos de inserción con la misma forma que num.

El siguiente ejemplo explica el uso de searchsorted() .

Python3

# importing the module
import numpy as np
  
# creating the array
arr = [1, 2, 2, 3, 3, 3, 4, 5, 6, 6]
print("arr = {}".format(arr))
  
# left-most 3
print("left-most index = {}".format(np.searchsorted(arr, 3, side="left")))
  
# right-most 3
print("right-most index = {}".format(np.searchsorted(arr, 3, side="right")))

Producción:

arr = [1, 2, 2, 3, 3, 3, 4, 5, 6, 6]
left-most index = 3
right-most index = 6

Publicación traducida automáticamente

Artículo escrito por sareendivyansh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *