浅谈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最长公共子串算法实例
Mar 07 Python
Python中函数参数设置及使用的学习笔记
May 03 Python
简单谈谈python的反射机制
Jun 28 Python
Python实现多线程HTTP下载器示例
Feb 11 Python
python中利用await关键字如何等待Future对象完成详解
Sep 07 Python
解决python "No module named pip" 的问题
Oct 13 Python
python实现Dijkstra静态寻路算法
Jan 17 Python
Python IDE Pycharm中的快捷键列表用法
Aug 08 Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 Python
Scrapy框架实现的登录网站操作示例
Feb 06 Python
Python rabbitMQ如何实现生产消费者模式
Aug 24 Python
Python用Jira库来操作Jira
Dec 28 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 Undefined index报错的修复方法
2011/07/17 PHP
模仿jQuery each函数的链式调用
2009/07/22 Javascript
jquery 常用操作方法
2010/01/28 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
js oncontextmenu事件使用详解
2017/03/25 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
2017/07/27 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
node.js中http模块和url模块的简单介绍
2017/10/06 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
基于vue.js快速搭建图书管理平台
2017/10/29 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
[04:52]DOTA2亚洲邀请赛附加赛 TOP10精彩集锦
2015/01/29 DOTA
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
2016/09/18 Python
Python collections模块使用方法详解
2019/08/28 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
意大利制造的西装、衬衫和针对男士量身定制的服装:Lanieri
2018/04/08 全球购物
简历中求职的个人自我评价
2013/12/03 职场文书
施工材料员岗位职责
2014/02/12 职场文书
平安建设实施方案
2014/03/19 职场文书
妇联主席先进事迹
2014/05/18 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
2014年优秀党员材料
2014/12/18 职场文书
面试感谢信范文
2015/01/22 职场文书
神秘岛读书笔记
2015/07/01 职场文书
新闻稿怎么写
2015/07/18 职场文书
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL