浅谈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设计模式编程中的访问者与观察者模式
Jan 26 Python
Python的Flask框架中配置多个子域名的方法讲解
Jun 07 Python
Windows下安装python MySQLdb遇到的问题及解决方法
Mar 16 Python
Python3实现的字典、列表和json对象互转功能示例
May 22 Python
解决Mac安装scrapy失败的问题
Jun 13 Python
python程序控制NAO机器人行走
Apr 29 Python
解决Jupyter无法导入已安装的 module问题
Apr 17 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
May 17 Python
python GUI模拟实现计算器
Jun 22 Python
Python 如何实现访问者模式
Jul 28 Python
Python+Opencv身份证号码区域提取及识别实现
Aug 25 Python
python接口自动化框架实战
Dec 23 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
大家在抢红包,程序员在研究红包算法
2015/08/31 PHP
JavaScript:Div层拖动效果实例代码
2013/08/06 Javascript
js判断是否为ie的方法小结
2014/01/13 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
JS实现的自定义右键菜单实例二则
2015/09/01 Javascript
js中实现字符串和数组的相互转化详解
2016/01/24 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
用JS实现图片轮播效果代码(一)
2016/06/26 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
浅谈js的异步执行
2016/10/18 Javascript
[51:44]2018DOTA2亚洲邀请赛 4.3 突围赛 Optic vs iG 第二场
2018/04/04 DOTA
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
Mac中升级Python2.7到Python3.5步骤详解
2017/04/27 Python
pyqt5 删除layout中的所有widget方法
2019/06/25 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
Python3 翻转二叉树的实现
2019/09/30 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
2020/11/01 Python
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
香港现代设计家具品牌:Ziinlife Furniture
2018/11/13 全球购物
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
中专毕业生自我鉴定范文
2013/11/09 职场文书
化工专业推荐信范文
2013/11/28 职场文书
《雾凇》教学反思
2014/02/17 职场文书
城市精细化管理实施方案
2014/03/04 职场文书
借款协议书
2014/04/12 职场文书
2014年幼儿园安全工作总结
2014/11/10 职场文书
导游词怎么写
2015/02/04 职场文书
民事答辩状范本
2015/05/21 职场文书
导游词之峨眉乐山/兵马俑/北京故宫御花园
2019/09/03 职场文书
人生哲理妙语30条:淡写流年,笑过人生
2019/09/04 职场文书
分享几个实用的CSS代码块
2022/06/10 HTML / CSS