如何用NumPy得到一个数组的n个最大的值

如何用NumPy得到一个数组的n个最大的值

让我们看看如何使用NumPy库获得一个数组的n个最大值的程序。为了从NumPy数组中获得最大的数值,我们首先要使用NumPy的numpy.argsort()函数对NumPy数组进行排序,然后应用负数索引的切分概念。

语法: numpy.argsort(arr, axis=-1, kind=’quicksort’, order=None)

返回: [index_array, ndarray] 沿着指定的轴对arr进行排序的索引数组。如果arr是一维的,那么arr[index_array]返回一个排序的arr。

让我们看一个例子。

示例1:从NumPy数组中获取第一大值。

# 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])

输出:

Given array: [2 0 1 5 4 1 9]
Sorted array: [0 1 1 2 4 5 9]
1 largest value: 9

例子2:从NumPy数组中获取3个最大的值。

# 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)

输出:

Given array: [2 0 1 5 4 1 9]
Sorted array: [0 1 1 2 4 5 9]
3 largest value: [4 5 9]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Numpy 数学函数