浅谈numpy数组的几种排序方式


Posted in Python onDecember 15, 2017

简单介绍

NumPy系统是Python的一种开源的数组计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。

创建数组

创建1维数组:

data = np.array([1,3,4,8])  

查看数组维度

data.shape

查看数组类型

data.dtype

通过索引获取或修改数组元素

data[1] 获取元素
data[1] = 'a' 修改元素 
 

创建二维数组

data = np.array([[1,2,3],[4,5,6]]) 两个元素均为列表<br>2.data = np.arange(10) 与python的range一样,range返回列表,arange返回array类型的一个数组<br>3.data2 = data.reshape(2,5) 返回一个2*5的数组,他不是拷贝数组是引用,只是返回数组的不同视图,data改变data2也会改变

创建特殊数组 

data = np.zeros((2,2)) 创建2*2全为0的2维数组
data = np.ones((2,3,3,)) 创建全为1的三维数组
data = np.eye(4) 创建4*4的对角数组,对角元素为1,其它都为0

数组转换

data = np.arange(16).reshape(4,4) 将0-16的移位数组转换为4*4的数组  

排序方式

说明:经常需要对数组或者list进行排序,python提供了好几种排序的函数,下面说明下特点;

二维数组a:

1 4
3 1

1、ndarray.sort(axis=-1,kind='quicksort',order=None)

使用方法:a.sort

参数说明:

axis:排序沿着数组的方向,0表示按行,1表示按列

kind:排序的算法,提供了快排、混排、堆排

order:不是指的顺序,以后用的时候再去分析这个

作用效果:对数组a排序,排序后直接改变了a

例如:

>>a.sort(axis=1)
>>print a
1 4
1 3

2、numpy.sort(a,axis=-1,kind='quicksort',order=None)

使用方法:numpy.sort(a)

参数说明:

a:要排序的数组,其他同1

作用效果:对数组a排序,返回一个排序后的数组(与a相同维度),a不变

例如:

>>print numpy.sort(a,axis=1)
1 4
1 3
>>print a
1 4
3 1

3、numpy.argsort(a,axis=-1,kind='quicksort',order=None)

使用方法:numpy.argsort(a)

参数说明:同2

作用效果:对数组a排序,返回一个排序后索引,a不变

例如:

>>print numpy.argsort(a,axis=1)
0 1
1 0

4、sorted(iterable,cmp=None,key=None,reverse=False)

说明:内置的排序函数,对list,字典等等可以使用

iterable:是可迭代类型;

cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;

key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;

reverse:排序规则.reverse=True或者reverse=False,默认False(从小到大)。

返回值:是一个经过排序的可迭代类型,与iterable一样;

例如:b是一个字典

b:

{'a':2,'c':1,'b':3}

对b进行排序:

>>c=sorted(b.iteritems(),key=operator.itemgetter(1),reverse=False)
>>print c[('c', 1), ('a', 2), ('b', 3)]

可见:返回的是一个list

总结

以上就是本文关于浅谈numpy数组的几种排序方式的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python实现从url中提取域名的几种方法
Sep 26 Python
理解生产者消费者模型及在Python编程中的运用实例
Jun 26 Python
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
Jul 11 Python
python异常和文件处理机制详解
Jul 19 Python
20招让你的Python飞起来!
Sep 27 Python
Python基于ThreadingTCPServer创建多线程代理的方法示例
Jan 11 Python
python opencv实现运动检测
Jul 10 Python
不管你的Python报什么错,用这个模块就能正常运行
Sep 14 Python
python set集合使用方法解析
Nov 05 Python
python paramiko远程服务器终端操作过程解析
Dec 14 Python
python中count函数简单的实例讲解
Feb 06 Python
Pandas直接读取sql脚本的方法
Jan 21 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
Dec 15 #Python
python导入csv文件出现SyntaxError问题分析
Dec 15 #Python
python matplotlib中文显示参数设置解析
Dec 15 #Python
MAC中PyCharm设置python3解释器
Dec 15 #Python
Python通过matplotlib画双层饼图及环形图简单示例
Dec 15 #Python
python绘制双柱形图代码实例
Dec 14 #Python
Python实现一个Git日志统计分析的小工具
Dec 14 #Python
You might like
php xfocus防注入资料
2008/04/27 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
PHP 二维数组根据某个字段排序的具体实现
2014/06/03 PHP
jquery 单击li防止重复加载的实现代码
2010/12/24 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
jQuery实现带延迟效果的滑动菜单代码
2015/09/02 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
JS实现字符串转日期并比较大小实例分析
2015/12/09 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
解决vue热替换失效的根本原因
2018/09/19 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
ES6 如何改变JS内置行为的代理与反射
2019/02/11 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
JS实现公告上线滚动效果
2021/01/10 Javascript
javascript实现倒计时关闭广告
2021/02/09 Javascript
python实现简单socket通信的方法
2016/04/19 Python
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
python图像和办公文档处理总结
2019/05/28 Python
python 通过手机号识别出对应的微信性别(实例代码)
2019/12/22 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
python实现网页录音效果
2020/10/26 Python
Python经纬度坐标转换为距离及角度的实现
2020/11/01 Python
Java语言程序设计测试题判断题部分
2013/01/06 面试题
户外亲子活动策划方案
2014/02/07 职场文书
捐资助学倡议书
2014/04/15 职场文书
教师查摆问题自查报告
2014/10/11 职场文书
碧霞祠导游词
2015/02/09 职场文书
2015年学生会部门工作总结
2015/04/21 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
校园之声广播稿
2015/08/18 职场文书
财务年终工作总结大全
2019/06/20 职场文书
Mysql Show Profile
2021/04/05 MySQL