浅谈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中的字典详细介绍
Sep 18 Python
Python基于smtplib实现异步发送邮件服务
May 28 Python
python 读写txt文件 json文件的实现方法
Oct 22 Python
Python 列表理解及使用方法
Oct 27 Python
PyQt5每天必学之布局管理
Apr 19 Python
pycharm访问mysql数据库的方法步骤
Jun 18 Python
Django自定义用户登录认证示例代码
Jun 30 Python
python连接PostgreSQL数据库的过程详解
Sep 18 Python
Pycharm及python安装详细教程(图解)
Jul 31 Python
Python 使用Opencv实现目标检测与识别的示例代码
Sep 08 Python
python调用百度API实现人脸识别
Nov 17 Python
Python使用socket去实现TCP客户端和TCP服务端
Apr 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
thinkphp实现数组分页示例
2014/04/13 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
2014/09/01 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
JS实现在文本指定位置插入内容的简单示例
2017/12/22 Javascript
swiper自定义分页器使用方法详解
2020/09/14 Javascript
浅谈vue首屏加载优化
2018/06/28 Javascript
JS实现利用闭包判断Dom元素和滚动条的方向示例
2019/08/26 Javascript
js实现简易计算器功能
2019/10/18 Javascript
微信小程序利用云函数获取手机号码
2019/12/17 Javascript
webpack proxy 使用(代理的使用)
2020/01/10 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
jenkins自动构建发布vue项目的方法步骤
2021/01/04 Vue.js
python批量生成本地ip地址的方法
2015/03/23 Python
python 网络编程常用代码段
2016/08/28 Python
django模型层(model)进行建表、查询与删除的基础教程
2017/11/21 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
解决python ogr shp字段写入中文乱码的问题
2018/12/31 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
Django Haystack 全文检索与关键词高亮的实现
2020/02/17 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
2020/03/23 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
浅谈Python 钉钉报警必备知识系统讲解
2020/08/17 Python
WatchShop法国:英国排名第一的独立手表零售商
2020/02/17 全球购物
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
数控专业个人求职信范例
2013/11/29 职场文书
校园新闻广播稿
2014/01/10 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
环保倡议书
2014/04/14 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python
golang操作redis的客户端包有多个比如redigo、go-redis
2022/04/14 Golang