1.numpy库:argsort()

  argsort函数返回的是数组值从小到大的索引值(升序排列)

一维:

In [1]: import numpy as np

In [2]: x = np.array([1,3,2,5,4])

In [3]: np.argsort(x)
Out[3]: array([0, 2, 1, 4, 3]) In [4]: x[np.argsort(x)]
Out[4]: array([1, 2, 3, 4, 5]) In [5]: x[np.argsort(-x)]
Out[5]: array([5, 4, 3, 2, 1]) In [6]: np.argsort(-x)
Out[6]: array([3, 4, 1, 2, 0])

降序升序排列的另一种方法:

In [7]: tmp = x[np.argsort(x)]

In [8]: tmp[::-1]
Out[8]: array([5, 4, 3, 2, 1])

二维:axis = 0 按列排序;axis = 1, 按行排序

In [4]: x = np.array([[1,3],[2,1]])

In [5]: np.argsort(x, axis = 0)
Out[5]: array([[0, 1],[1, 0]]) In [6]: np.argsort(x, axis = 1)
Out[6]: array([[0, 1],[1, 0]])

  总结:np.argsort(x) 升序排列,np.argsort(-x)降序排列

  

  

  

【Python】数组排序的更多相关文章

  1. python中的列表及numpy数组排序

    一.列表排序  # python中对列表排序有sort.sorted两种方法,其中sort是列表内置方法,其帮助文档如下:In [1]: help(sorted) Help on built-in f ...

  2. python已字典为元素的数组排序

    dict = [ {','name':'b'}, {','name':'c'}, {','name':'a'}, {','name':'g'}, {','name':'f'} ] dict.sort( ...

  3. 基于python的七种经典排序算法

    参考书目:<大话数据结构> 一.排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. ...

  4. python 学习

    python 使用 缩进 代替 C 中的 {}  或 delphi 中的 begin...end 1.help()  显示帮助或 help(<命令>) 2.字符串前加 r 表示原始字符串, ...

  5. 几种排序算法的学习,利用Python和C实现

    之前学过的都忘了,也没好好做过总结,现在总结一下. 时间复杂度和空间复杂度的概念: 1.空间复杂度:是程序运行所以需要的额外消耗存储空间,一般的递归算法就要有o(n)的空间复杂度了,简单说就是递归集算 ...

  6. 窥探算法之美妙——寻找数组中最小的K个数&python中巧用最大堆

    原文发表在我的博客主页,转载请注明出处 前言 不论是小算法或者大系统,堆一直是某种场景下程序员比较亲睐的数据结构,而在python中,由于数据结构的极其灵活性,list,tuple, dict在很多情 ...

  7. python 快速入门

    根据以下几个步骤来快速了解一下python,目标是可以利用python来处理一些简易的问题或者写一些工具.   1.编写Hello world 2.学习 if,while,for 的语法 3.学习该语 ...

  8. Python简明教程---学习笔记

    字符双引号括起,数字不括: 分隔符为逗号(,),不能为空格 变量定义时即赋值 采用utf-8编码:#-*-coding:utf-8-*-或者#coding:utf-8 字符串定义:单/双引号括起 %符 ...

  9. [LeetCode]题解(python):001-Two-Sum

    题目来源: https://leetcode.com/problems/two-sum/ 题意分析: 这道题目是输入一个数组和target,要在一个数组中找到两个数字,其和为target,从小到大输出 ...

随机推荐

  1. IP地址 网段的划分

    IP和子网掩码我们都知道,IP是由四段数字组成,在此,我们先来了解一下3类常用的IP A类IP段 0.0.0.0 到127.255.255.255  B类IP段 128.0.0.0 到191.255. ...

  2. Django--网页管理实例解析

    此篇为代码流程的注释以及自己写的小项目的思路: 首先是项目的路由配置: urlpatterns = [ # url(r'^admin/', admin.site.urls), url(r'^yemia ...

  3. client交互技术简单介绍

    随着网络应用的不断丰富,client交互技术也如雨后春笋一般,遍地开花. 正是这些技术的支持,我们的互联网世界变得更加丰富多彩.一个浏览器上.不用说是简单的动画效果,就是一个Office应用也能顺畅的 ...

  4. ZooKeeper 系列(一)—— ZooKeeper核心概念详解

    一.Zookeeper简介 二.Zookeeper设计目标 三.核心概念         3.1 集群角色         3.2 会话         3.3 数据节点         3.4 节点 ...

  5. 渐变背景(background)效果

    chrom and Safari浏览器: webkit核心的浏览器.使用CSS3渐变方法(css-gradient) -webkit-gradient(type, start_point, end_p ...

  6. 30天自制操作系统(二)汇编语言学习与Makefile入门

    1 介绍文本编辑器 这部分可直接略过 2 继续开发 helloos.nas中核心程序之前的内容和启动区以外的内容先不讲了,因为还涉及到一些软盘方面的知识. 然后来讲的是helloos.nas这个文件 ...

  7. openwrt patch

    一: 这几天使用一款电信的4G网卡,发现了一些问题,所以决定打个pitch来解决问题,顺便把patch的生成与使用学习一下 二:安装patch的管理工具quilt 1. sudo apt-get in ...

  8. MySQL 事务1

    本人应用的MySQL的版本为:5.6.22

  9. Project Structure 讲解(转)

    项目的左侧面板 项目设置->Project Project Settings -> Modules Sources面板 Paths面板 dependencies面板 Project Set ...

  10. 【题解】 AT2134 Zigzag MST

    [题解]AT2134 Zigzag MST 一道MST好题 \(Anson\)有云: 要么是减少边的数量. 要么是改变连接边的方式. 那么如何减少边的数量呢?很简单,把所有不可能对答案产生贡献的边去掉 ...