【Python】数组排序
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】数组排序的更多相关文章
- python中的列表及numpy数组排序
一.列表排序 # python中对列表排序有sort.sorted两种方法,其中sort是列表内置方法,其帮助文档如下:In [1]: help(sorted) Help on built-in f ...
- python已字典为元素的数组排序
dict = [ {','name':'b'}, {','name':'c'}, {','name':'a'}, {','name':'g'}, {','name':'f'} ] dict.sort( ...
- 基于python的七种经典排序算法
参考书目:<大话数据结构> 一.排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. ...
- python 学习
python 使用 缩进 代替 C 中的 {} 或 delphi 中的 begin...end 1.help() 显示帮助或 help(<命令>) 2.字符串前加 r 表示原始字符串, ...
- 几种排序算法的学习,利用Python和C实现
之前学过的都忘了,也没好好做过总结,现在总结一下. 时间复杂度和空间复杂度的概念: 1.空间复杂度:是程序运行所以需要的额外消耗存储空间,一般的递归算法就要有o(n)的空间复杂度了,简单说就是递归集算 ...
- 窥探算法之美妙——寻找数组中最小的K个数&python中巧用最大堆
原文发表在我的博客主页,转载请注明出处 前言 不论是小算法或者大系统,堆一直是某种场景下程序员比较亲睐的数据结构,而在python中,由于数据结构的极其灵活性,list,tuple, dict在很多情 ...
- python 快速入门
根据以下几个步骤来快速了解一下python,目标是可以利用python来处理一些简易的问题或者写一些工具. 1.编写Hello world 2.学习 if,while,for 的语法 3.学习该语 ...
- Python简明教程---学习笔记
字符双引号括起,数字不括: 分隔符为逗号(,),不能为空格 变量定义时即赋值 采用utf-8编码:#-*-coding:utf-8-*-或者#coding:utf-8 字符串定义:单/双引号括起 %符 ...
- [LeetCode]题解(python):001-Two-Sum
题目来源: https://leetcode.com/problems/two-sum/ 题意分析: 这道题目是输入一个数组和target,要在一个数组中找到两个数字,其和为target,从小到大输出 ...
随机推荐
- Msfvenom 学习笔记与总结
平台:Android,可用Payload: android/meterpreter/reverse_http Run a meterpreter server on Android. Tunnel c ...
- ubuntu boost.python
安装boost(未尝试只安装 libboost-python-dev) sudo apt-get install libboost-all-dev 新建hello_ext.cpp,输入以下代码 1 c ...
- jdbc 简单连接
package itcast; import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;i ...
- ASP.NET页面间传值的几种方式
ASP.NET页面间传值的几种方式 1.使用QueryString 使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在 ...
- redis问题接囧办法及经验
转自:https://my.oschina.net/freegeek/blog/324410 1.redis持久化,来自官方说明 如何选择使用哪种持久化方式? 一般来说, 如果想达到足以媲美 Post ...
- eclipse spring4 ehache2.10 整合
http://blog.csdn.net/tonytfjing/article/details/39251507 http://my.oschina.net/duoduo3369/blog/17392 ...
- iOS项目 -- 模仿花椒直播做的第三层设计完整版
由于是获取第三方的数据,开发的时候,把数据结构分为:闭环数据,和开环数据. 开环数据是网络的第三方数据,自己不能控制的了. 闭环数据是自己的数据,可以进行各式各样的设计. 这是闭环数据的数据库关键字设 ...
- 离线安装Cloudera Manager5.3.4与CDH5.3.4(一)
这几天一直在安装CDH,头都搞大了,安装第三次,最终成功了. 第一次问题非常多.后面卸载了.由于没有卸载干净导致第二次安装失败. 后来索性重装系统了.直接使用了纯净系统进行安装.一个人跑到学院机房去装 ...
- 动态内存分配(Dynamic memory allocation)
下面的代码片段的输出是什么?为什么? 解析:这是一道动态内存分配(Dynamic memory allocation)题. 尽管不像非嵌入式计算那么常见,嵌入式系统还是有从堆(heap)中动态分 ...
- [URAL-1517][求两个字符串的最长公共子串]
Freedom of Choice URAL - 1517 Background Before Albanian people could bear with the freedom of speec ...