• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    如何获取numpy array前N个最大值

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

    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.
     

    示例:

    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个数

    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个数及其索引

    看代码吧~

    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]

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • Python 实现Numpy中找出array中最大值所对应的行和列
    • numpy找出array中的最大值,最小值实例
    • python如何获得list或numpy数组中最大元素对应的索引
    • python中找出numpy array数组的最值及其索引方法
    上一篇:使用pandas模块实现数据的标准化操作
    下一篇:聊一聊python常用的编程模块
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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