浅谈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执行子进程实现进程间通信的方法
Jun 02 Python
Python实现输出程序执行进度百分比的方法
Sep 16 Python
用Eclipse写python程序
Feb 10 Python
Python处理菜单消息操作示例【基于win32ui模块】
May 09 Python
Python数据可视化之画图
Jan 15 Python
代码详解django中数据库设置
Jan 28 Python
对Python协程之异步同步的区别详解
Feb 19 Python
将python安装信息加入注册表的示例
Nov 20 Python
Python创建数字列表的示例
Nov 28 Python
使用Bazel编译TensorBoard教程
Feb 15 Python
通过python调用adb命令对App进行性能测试方式
Apr 23 Python
python使用opencv resize图像不进行插值的操作
Jul 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
一个用php3编写的简单计数器
2006/10/09 PHP
php+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
PHP 模拟$_PUT实现代码
2010/03/15 PHP
关于尾递归的使用详解
2013/05/02 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
jquery实现具有嵌套功能的选项卡
2016/02/12 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
2016/09/08 Javascript
bootstrap多种样式进度条展示
2016/12/20 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
2018/01/30 Javascript
vue v-model动态生成详解
2018/06/30 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
VUE+Element实现增删改查的示例源码
2020/11/23 Vue.js
获取Django项目的全部url方法详解
2017/10/26 Python
Python读csv文件去掉一列后再写入新的文件实例
2017/12/28 Python
Python实现学生成绩管理系统
2020/04/05 Python
django静态文件加载的方法
2018/05/20 Python
使用Python读取二进制文件的实例讲解
2018/07/09 Python
python 自定义对象的打印方法
2019/01/12 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
python如何实现视频转代码视频
2019/06/17 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
python加载自定义词典实例
2019/12/06 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
python反爬虫方法的优缺点分析
2020/11/25 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/01/13 面试题
大学生收银员求职信分享
2014/01/02 职场文书
企业新年寄语
2014/04/04 职场文书
教师群众路线剖析材料
2014/09/29 职场文书