浅谈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 相关文章推荐
django创建自定义模板处理器的实例详解
Aug 14 Python
浅谈Python NLP入门教程
Dec 25 Python
Python中py文件引用另一个py文件变量的方法
Apr 29 Python
Python装饰器的执行过程实例分析
Jun 04 Python
Python中循环后使用list.append()数据被覆盖问题的解决
Jul 01 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
Aug 31 Python
Python实现一个数组除以一个数的例子
Jul 20 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
Jul 24 Python
利用python实现PSO算法优化二元函数
Nov 13 Python
Python logging模块异步线程写日志实现过程解析
Jun 30 Python
如何通过命令行进入python
Jul 06 Python
详解python 支持向量机(SVM)算法
Sep 18 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记录代码执行时间(实现代码)
2013/07/05 PHP
Div自动滚动到末尾的代码
2008/10/26 Javascript
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
JS关键字球状旋转效果的实例代码
2013/11/29 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
vue中用H5实现文件上传的方法实例代码
2017/05/27 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
基于jQuery拖拽事件的封装
2020/11/29 jQuery
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
[01:06:19]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第二场 1月8日
2021/03/11 DOTA
Python中对列表排序实例
2015/01/04 Python
python自动zip压缩目录的方法
2015/06/28 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
python如何爬取动态网站
2020/09/09 Python
python使用dlib进行人脸检测和关键点的示例
2020/12/05 Python
图解CSS3制作圆环形进度条的实例教程
2016/05/26 HTML / CSS
html5 worker 实例(一) 为什么测试不到效果
2013/06/24 HTML / CSS
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
高级运动鞋:GREATS
2019/07/19 全球购物
一套Java笔试题
2016/08/20 面试题
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
2016/04/28 面试题
党员年终民主评议的自我评价
2013/11/05 职场文书
计算机求职信
2014/07/02 职场文书
杨善洲电影观后感
2015/06/04 职场文书
同乡会致辞
2015/07/30 职场文书
MySQL RC事务隔离的实现
2022/03/31 MySQL