Python topk()函数求最大和最小值实例
什么是topk算法?
Topk算法求一个无序数组中前K大或者前K小的值,是大数据处理和数据分析的重要工具。当数据集较大,数据又是无序的时候,topk算法可以有效地挑选出最有代表性的数据。在Python中,可以使用topk()函数实现。
topk()函数的使用方法
语法
heapq.nlargest(n, iterable, key=None)
heapq.nsmallest(n, iterable, key=None)
n
: 表示选出前n个元素iterable
: 表示数据来源,可以为列表、元组、文件等可迭代的对象key
: 表示筛选的规则,例如可以指定按照数值大小排序,返回元素的某一个属性等
求一个列表中的前K大或者前K小的值
import heapq
lst = [5, 6, 2, 1, 3, 9, 8, 4, 7]
# 求列表中前3大的值
largest = heapq.nlargest(3, lst)
print(largest) # [9, 8, 7]
# 求列表中前3小的值
smallest = heapq.nsmallest(3, lst)
print(smallest) # [1, 2, 3]
求一个字典中前K大或者前K小的值
import heapq
dct = {"a": 5, "b": 6, "c": 2, "d": 1, "e": 3, "f": 9, "g": 8, "h": 4, "i": 7}
# 求字典中前3大的值
largest = heapq.nlargest(3, dct, key=dct.get)
print(largest) # ['f', 'g', 'i']
# 求字典中前3小的值
smallest = heapq.nsmallest(3, dct, key=dct.get)
print(smallest) # ['d', 'c', 'h']
这里注意,字典对象中,统计前K大或K小的值,需要指定key函数,根据value进行排序。其他的用法和求列表中前K大或K小的值相同。
通过以上示例,相信你对如何使用Python中的topk()函数求最大和最小值有了更加深入的了解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python topk()函数求最大和最小值实例 - Python技术站