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)