浅谈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接受前端数据的几种方法总结
Nov 04 Python
python使用正则表达式的search()函数实现指定位置搜索功能
Nov 10 Python
给你选择Python语言实现机器学习算法的三大理由
Nov 15 Python
Python实现上下班抢个顺风单脚本
Feb 07 Python
Python中pillow知识点学习
Apr 30 Python
用pyqt5 给按钮设置图标和css样式的方法
Jun 24 Python
Python实现串口通信(pyserial)过程解析
Sep 25 Python
Django框架安装方法图文详解
Nov 04 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
Nov 22 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
Jan 13 Python
tensorflow 环境变量设置方式
Feb 06 Python
Python中私有属性的定义方式
Mar 05 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/04 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
CodeIgniter与PHP5.6的兼容问题
2015/07/16 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
js 居中漂浮广告
2010/03/21 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
2013/03/17 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
jQuery Validate表单验证插件实现代码
2017/06/08 jQuery
js数据类型检测总结
2018/08/05 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
[00:56]2014DOTA2国际邀请赛 DK、iG 赛前探访
2014/07/10 DOTA
python获取图片颜色信息的方法
2015/03/18 Python
在Django中创建动态视图的教程
2015/07/15 Python
Python探索之实现一个简单的HTTP服务器
2017/10/28 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
Python 迭代,for...in遍历,迭代原理与应用示例
2019/10/12 Python
PyQt5多线程刷新界面防假死示例
2019/12/13 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
Python模拟登录requests.Session应用详解
2020/11/17 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
小学教育毕业生自荐信
2013/11/18 职场文书
高二化学教学反思
2014/01/30 职场文书
班长竞选演讲稿
2014/04/24 职场文书
挂职锻炼工作总结2015
2015/05/28 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
CSS变量实现主题切换的方法
2021/06/23 HTML / CSS