浅谈numpy数组的几种排序方式
作者:sloanqin 发布时间:2022-04-24 12:48:15
简单介绍
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
来源:http://blog.csdn.net/sloanqin/article/details/50130253
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 1、关于参数的区别实例方法:定义实例方法是最少有一个形参 ---> 实例对象,通常用 self类方法:定义类方法的时候最少有一个形参
- 准备正常情况下,创建class的实例后,可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。首先定义一个classclass A(obj
- 如果直接在命令行中利用input和raw_input读入一个文件来处理,并且想要采用直接将文件拖入命令行来处理的方式,input方法可以直接
- 曾有位网友遇到这样一个问题:产品名称为“A&T Plastic”,在产品列表中需要做这样的超链接,<a href="
- 上节基本完成了SVM的理论推倒,寻找最大化间隔的目标最终转换成求解拉格朗日乘子变量alpha的求解问题,求出了alpha即可求解出SVM的权
- 【OpenCV】⚠️高手勿入! 半小时学会基本操作 ⚠️ 图像轮廓概述OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大.
- Laravel 中间件提供了一种方便的机制来过滤进入应用的 HTTP 请求。例如,Laravel 内置了一个中间件来验证用户的身份认证。如果
- 【基本介绍】【格式】:pivot(聚合函数 for 需要转为列的字段名 in(需要转为列的字段值))【说明】:实现将指定字段的字段值转换为列
- 1.match() 从开始位置开始匹配 2.search() 任意位置匹配,如果有多个匹配,只返回第一个 3.finditer() 返回所有
- 本文实例讲述了python使用wxPython打开并播放wav文件的方法。分享给大家供大家参考。具体实现方法如下:''
- MySQL的ODBC接口实现是通过安装MyODBC驱动,这个驱动程序是跨平台的。如果在Linux等Unix体系操作系统下使用,需要先安装Io
- 1.代码准备没有语法错误的Python程序:#!/usr/bin/pythonimport numpy as npclass Network
- 这个是JS控制图片滚动的效果,当鼠标结果新闻标题时开始滚动到对应的图片,可以作为图片新闻。效果图:<!DOCTYPE HTML PUB
- load与loads简介:在python自动化中,我们传递一些参数是需要从文件中读取过来的,读取过来的字典并非python对象数据类型而是s
- 1. 新建项目在命令行窗口下输入scrapy startproject scrapytest, 如下然后就自动创建了相应的文件,如下2. 修
- 本文实例讲述了Python实现的网页截图功能。分享给大家供大家参考,具体如下:方法一、使用PyQt4的QtWebKit组件#!/usr/bi
- 闭包account=0def atm(num,flag): global account  
- 本文实例为大家分享了python tkinter库实现气泡屏保和锁屏的具体代码,供大家参考,具体内容如下显示效果如下:代码: im
- Python标准库的OS模块对操作系统的API进行了封装,并且使用统一的API访问不同操作系统的相同功能。OS模块包含与操作系统的系统环境、
- python版本:3.8class object: """ The most base type "