Veamos el programa para saber cómo obtener los n valores más grandes de una array usando la biblioteca NumPy. Para obtener n valores más grandes de una array NumPy, primero debemos ordenar la array NumPy usando la función numpy.argsort() de NumPy y luego aplicar el concepto de división con indexación negativa.
Sintaxis: numpy.argsort(arr, axis=-1, kind=’quicksort’, order=Ninguno)
Devuelve: [index_array, ndarray] Array de índices que ordenan arr a lo largo del eje especificado. Si arr es unidimensional, entonces arr[index_array] devuelve una array ordenada.
Veamos un ejemplo:
Ejemplo 1: obtener el primer valor más grande de una array NumPy.
Python3
# import library import numpy as np # create numpy 1d-array arr = np.array([2, 0, 1, 5, 4, 1, 9]) print("Given array:", arr) # sort an array in # ascending order # np.argsort() return # array of indices for # sorted array sorted_index_array = np.argsort(arr) # sorted array sorted_array = arr[sorted_index_array] print("Sorted array:", sorted_array) # we want 1 largest value n = 1 # we are using negative # indexing concept # take n largest value rslt = sorted_array[-n : ] # show the output print("{} largest value:".format(n), rslt[0])
Producción:
Given array: [2 0 1 5 4 1 9] Sorted array: [0 1 1 2 4 5 9] 1 largest value: 9
Ejemplo 2: Obtener los 3 valores más grandes de una array NumPy.
Python3
# import library import numpy as np # create numpy 1d-array arr = np.array([2, 0, 1, 5, 4, 1, 9]) print("Given array:", arr) # sort an array in # ascending order # np.argsort() return # array of indices for # sorted array sorted_index_array = np.argsort(arr) # sorted array sorted_array = arr[sorted_index_array] print("Sorted array:", sorted_array) # we want 3 largest value n = 3 # we are using negative # indexing concept # find n largest value rslt = sorted_array[-n : ] # show the output print("{} largest value:".format(n), rslt)
Producción:
Given array: [2 0 1 5 4 1 9] Sorted array: [0 1 1 2 4 5 9] 3 largest value: [4 5 9]