浅谈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 相关文章推荐
教你用python3根据关键词爬取百度百科的内容
Aug 18 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
Nov 01 Python
Python中类的初始化特殊方法
Dec 01 Python
python如何为被装饰的函数保留元数据
Mar 21 Python
python 显示数组全部元素的方法
Apr 19 Python
python单例模式获取IP代理的方法详解
Sep 13 Python
详解python-图像处理(映射变换)
Mar 22 Python
Tensorflow实现酸奶销量预测分析
Jul 19 Python
django一对多模型以及如何在前端实现详解
Jul 24 Python
python元组和字典的内建函数实例详解
Oct 22 Python
Python3将jpg转为pdf文件的方法示例
Dec 13 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 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
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
Yii2中datetime类的使用
2016/12/17 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
javascript中将Object转换为String函数代码 (json str)
2012/04/29 Javascript
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
jQuery下拉框的简单应用
2016/06/24 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
2017/01/16 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
select2 ajax 设置默认值,初始值的方法
2018/08/09 Javascript
jQuery实现的简单拖拽功能示例【测试可用】
2018/08/14 jQuery
Vue实现简易计算器
2020/02/25 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
python抓取京东商城手机列表url实例代码
2013/12/18 Python
Python实现简单登录验证
2016/04/13 Python
Python开发的十个小贴士和技巧及长常犯错误
2018/09/27 Python
Django中更改默认数据库为mysql的方法示例
2018/12/05 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
2019/05/28 Python
Django多数据库的实现过程详解
2019/08/01 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
Opencv求取连通区域重心实例
2020/06/04 Python
Python容器类型公共方法总结
2020/08/19 Python
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形
2013/01/09 HTML / CSS
澳大利亚小众服装品牌:Maurie & Eve
2018/03/27 全球购物
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
医院合作协议书
2014/08/19 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
小学教师节活动总结
2015/03/20 职场文书
《司马光》教学反思
2016/02/22 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
CSS3实现的3D隧道效果
2021/04/27 HTML / CSS