Python获取numpy数组中最大的5个元素(保持原顺序)

本文主要演示numpy的argsort()函数的用法。这个函数的返回值是数组中的元素排序后的原下标,例如np.argsort([3,1,2])的返回结果是array([1, 2, 0], dtype=int64),表达的是意思是原来下标1对应的元素最小,然后是原来下标2的元素,最后是原来下标0的元素最大。

下面的小代码演示了该函数的用法,并在最后按数组中原来的位置顺序返回了最大的5个元素。

>>> import numpy as np

>>> x = np.random.randint(1, 100, 10) # 随机整数

>>> x

array([84, 34, 22, 67, 5, 6, 76, 36, 99, 30])

>>> np.argsort(x) # 排序后的原下标

array([4, 5, 2, 9, 1, 7, 3, 6, 0, 8], dtype=int64)

>>> x[np.argsort(x)] # 按升序访问元素返回新数组

array([ 5, 6, 22, 30, 34, 36, 67, 76, 84, 99])

>>> x[sorted(np.argsort(x)[-5:])] # 按原来的顺序返回最大的5个数

array([84, 67, 76, 36, 99])

原文发布于微信公众号 - Python小屋(Python_xiaowu)

原文发表时间:2017-05-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小樱的经验随笔

【Java学习笔记之五】java数组详解

数组 概念 同一种类型数据的集合。其实数组就是一个容器。 数组的好处 可以自动给数组中的元素从0开始编号,方便操作这些元素...

29480
来自专栏desperate633

LintCode 数组划分题目分析代码

给出一个整数数组 nums 和一个整数 k。划分数组(即移动数组 nums 中的元素),使得:

6410
来自专栏水击三千

JavaScript函数(二)

在前面我们已经对函数作了简单的介绍,比如函数的定义、函数的声明、函数的调用和函数的传参等。本节将进一步介绍函数的应用,深度理解函数的各种使用。 函数是一个对象,...

29070
来自专栏代码世界

Python之函数进阶

一、命名空间 命名空间一共分为三种:   全局命名空间   局部命名空间   内置命名空间 全局命名空间:代码在运行伊始,创建的存储“变量名与值的关系”的空间 ...

34660
来自专栏java达人

Java运行时多态性:继承和接口的实现

image.png Java是面向对象的语言,而运行时多态性是面向对象程序设计代码重用的一个最强大机制,动态性的概念也可以被说成“一个接口,多个方法”。Ja...

27950
来自专栏me的随笔

Python中的类、对象、继承

上述访问级别更多的是一种编程约定,即便是以双下划线开头的字段,在类的外部也是可以访问的,但不建议这么做。示例代码如下:

17950
来自专栏尾尾部落

[剑指offer] 包含min函数的栈

用一个栈stack保存数据,用另外一个栈temp保存依次入栈最小的数 比如,stack中依次入栈 5, 3, 4, 10, 2, 12, 1, 8 则te...

11830
来自专栏java一日一条

如何用 JavaScript 实现一个数组惰性求值库

看到函数式语言里面的惰性求值,想自己用 JavaScript 写一个最简实现,加深对惰性求值了解。用了两种方法,都不到 80 行实现了基本的数组的惰性求值。

9720
来自专栏python读书笔记

python数据分析基础day4-字典字典的定义字典创建字典元素的获取字典的排序

今天说一下重要的数据类型,字典。 字典的定义 python中字典类型就是键值对的集合,其中键在一个字典中必须是唯一的,值没有这个要求。此外,值可以是数值,字符串...

30970
来自专栏java思维导图

【一分钟知识】静态变量和实例变量、构造器

1、静态变量和实例变量 静态变量 被static修饰符修饰的变量,也称为类变量 属于类,不属于类的任何一个对象 一个类不管创建多少个对象,静态变量在内存中有且仅...

376100

扫码关注云+社区

领取腾讯云代金券