Saltar al contenido

Índice de elemento en NumPy array

Hacemos una revisión profunda cada artículos en nuestra web con el objetivo de mostrarte siempre información con la mayor veracidad y actual.

Solución:

Utilizar np.where para obtener los índices donde una condición dada es True.

Ejemplos:

para un 2D np.ndarray llamado a:

i, j = np.where(a == value) # when comparing arrays of integers

i, j = np.where(np.isclose(a, value)) # when comparing floating-point arrays

para un 1D array:

i, = np.where(a == value) # integers

i, = np.where(np.isclose(a, value)) # floating-point

Tenga en cuenta que esto también funciona para condiciones como >=, <=, != Etcétera...

También puede crear una subclase de np.ndarray con un index() método:

class myarray(np.ndarray):
    def __new__(cls, *args, **kwargs):
        return np.array(*args, **kwargs).view(myarray)
    def index(self, value):
        return np.where(self == value)

Pruebas:

a = myarray([1,2,3,4,4,4,5,6,4,4,4])
a.index(4)
#(array([ 3,  4,  5,  8,  9, 10]),)

Puedes convertir un numpy array para enumerar y obtener su índice.

por ejemplo:

tmp = [1,2,3,4,5] #python list
a = numpy.array(tmp) #numpy array
i = list(a).index(2) # i will return index of 2, which is 1

esto es justo lo que querías.

Estoy dividido entre estas dos formas de implementar un índice de un NumPy array:

idx = list(classes).index(var)
idx = np.where(classes == var)

Ambos toman el mismo número de caracteres, pero el primer método devuelve un int en lugar de un numpy.ndarray.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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