gpt4 book ai didi

如何获取numpy array前N个最大值

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章如何获取numpy array前N个最大值由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

主要应用了argsort()函数,函数原型:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
numpy.argsort(a, axis = - 1 , kind = 'quicksort' , order = None )
'''
Returns the indices that would sort an array.
Perform an indirect sort along the given axis using the algorithm specified by the kind keyword. It returns an array of indices of the same shape as a that index data along the given axis in sorted order.
'''
Parameters:
a : array_like
Array to sort.
 
axis : int or None , optional
Axis along which to sort. The default is - 1 (the last axis). If None , the flattened array is used.
 
kind : {‘quicksort ', ‘mergesort' , ‘heapsort ', ‘stable' }, optional
Sorting algorithm.
 
order : str or list of str , optional
When a is an array with fields defined, this argument specifies which fields to compare first, second, etc. A single field can be specified as a string, and not all fields need be specified, but unspecified fields will still be used, in the order in which they come up in the dtype, to break ties.
 
Returns:
index_array : ndarray, int
Array of indices that sort a along the specified axis. If a is one - dimensional, a[index_array] yields a sorted a. More generally, np.take_along_axis(a, index_array, axis = a) always yields the sorted a, irrespective of dimensionality.

示例:

?
1
2
3
4
5
6
import numpy as np
top_k = 3
arr = np.array([ 1 , 3 , 2 , 4 , 5 ])
top_k_idx = arr.argsort()[:: - 1 ][ 0 :top_k]
print (top_k_idx)
#[4 3 1]

补充:python topN / topK 取 最大的N个数 或 最小的N个数 。

?
1
2
3
4
import numpy as np
a = np.array([ 1 , 4 , 3 , 5 , 2 ])
b = np.argsort(a)
print (b)

print结果[0 4 2 1 3] 。

说明a[0]最小,a[3]最大 。

a[0]<a[4]<a[2]<a[1]<a[3] 。

补充:利用Python获取数组或列表中最大的N个数及其索引 。

看代码吧~

?
1
2
3
4
5
6
7
import heapq
 
a = [ 43 , 5 , 65 , 4 , 5 , 8 , 87 ]
re1 = heapq.nlargest( 3 , a) #求最大的三个元素,并排序
re2 = map (a.index, heapq.nlargest( 3 , a)) #求最大的三个索引    nsmallest与nlargest相反,求最小
print (re1)
print ( list (re2)) #因为re2由map()生成的不是list,直接print不出来,添加list()就行了

结果:

re1:[87, 65, 43] 。

re2:[6, 2, 0] 。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/dlhlSC/article/details/88072268 。

最后此篇关于如何获取numpy array前N个最大值的文章就讲到这里了,如果你想了解更多关于如何获取numpy array前N个最大值的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com