浅谈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中super的用法实例
May 28 Python
Python判断列表是否已排序的各种方法及其性能分析
Jun 20 Python
Python中datetime模块参考手册
Jan 13 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
Nov 01 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
Dec 18 Python
Python编写一个验证码图片数据标注GUI程序附源码
Dec 09 Python
python如何基于redis实现ip代理池
Jan 17 Python
详解python内置常用高阶函数(列出了5个常用的)
Feb 21 Python
python的sys.path模块路径添加方式
Mar 09 Python
Python中无限循环需要什么条件
May 27 Python
深入了解Python 变量作用域
Jul 24 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
Jan 12 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的SimpleXML方法读写XML接口文件实例解析
2014/06/16 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
php使用include 和require引入文件的区别
2017/02/16 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
2019/10/11 PHP
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
2010/09/12 Javascript
打印json对象的内容及JSON.stringify函数应用
2013/03/29 Javascript
angularjs创建弹出框实现拖动效果
2020/08/25 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
2016/07/20 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
JavaScript实现网页留言板功能
2020/11/23 Javascript
Python中用函数作为返回值和实现闭包的教程
2015/04/27 Python
Python设计模式编程中解释器模式的简单程序示例分享
2016/03/02 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
Python3实现获取图片文字里中文的方法分析
2018/12/13 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
python实现excel公式格式化的示例代码
2020/12/23 Python
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
俄罗斯皮肤健康中心:Pharmacosmetica.ru
2020/02/22 全球购物
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
什么是serialVersionUID
2016/03/04 面试题
2014年技术员工作总结
2014/11/18 职场文书
小学教师求职信范文
2015/03/20 职场文书
红高粱观后感
2015/06/10 职场文书
大学校园招聘会感想
2015/08/10 职场文书
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android