浅谈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


猜你喜欢
- 1) chocolatappChocolat是最新出现的一款强大的Mac系统文本编辑器,兼具原生的Cocoa及强大的文本编辑功能。Choco
- 我们先来实现一个简单的例子,hello world。似乎每种语言教程的第一节都会讲这个,我们也不例外。首先我们先创建一个项目目录,目录可自己
- 栗子:计算斐波那契数列(任一个数都是前两个数之和的数字序列)Python2.7实现代码如下:<strong><span s
- 导语前段时间不是制作了一款升级版本五子棋的嘛!但是居然有粉丝私信我说:“准备拿到代码玩一下ok过去了!太难了准备放收藏夹落灰q@q~”所噶,
- 将程序转换为exe文件我们先来介绍如何使用工具Pyinstaller安装Pyinstaller我们用pip安装Pyinstaller 。注意
- 1. 检查HTML元素是否有拼写错误、是否忘记结束标记 即使是老手也经常会弄错div的嵌套关系。可以用dreamweaver的验证功能检查一
- 概述名称描述NOT REGEXP否定的REGEXPREGEXP字符串是否匹配正则表达式RLIKE字符串是否匹配正则表达式正则表达式是指定复杂
- 今天继续给大家介绍Linux运维相关知识,本文主要内容是SQL bool盲注和时间盲注。免责声明:本文所介绍的内容仅做学习交流使用,严禁利用
- curses 库 ( ncurses ) 提供了控制字符屏幕的独立于终端的方法。curses 是大多数类似于 UNIX 的系统(包括 Lin
- 这篇文章主要介绍了python 图像处理画一个正弦函数代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 上一篇自动在Windows中运行Python脚本并定时触发功能实现传送门链接运行Python脚本:.bat文件在Windows中,.bat文
- 思路改进原博主文章(Python GUI–Tkinter简单实现个性签名设计)的代码,原先的代码是基于Python2的,我这份代码基于Pyt
- 前言return语句用于退出函数,向调用方返回一个表达式。return在不带参数的情况下(或者没有写return语句),默认返回None。N
- 本文实例讲述了golang中strconv.ParseInt函数用法。分享给大家供大家参考,具体如下:golang strconv.Pars
- 很多年前,我们就可以轻易的从很多国营商场、火车车厢、饭馆旅馆中看到墙上挂的那个小本本-意见薄,作为经营方与顾客沟通的
- 进入root 权限下apt-get install mysql-serverapt-get install mysql-client创建数据
- 想要在准备查询混合数据库系统时将SQL Server转换为 XQuery 和进行反向转换吗?了解如何开发 Web 服务来从SQL Serve
- 方法1:用SET PASSWORD命令mysql> set password for 用户名@localhost = password
- 遇到了这个问题,意思是你的 CPU 支持AVX AVX2 (可以加速CPU计算),但你安装的 TensorFlow 版本不支持解决:1. 如
- 我生平不爱学习,所以说不出什么洋洋洒洒的大道理,貌似也写不出妙语连珠的学术文章,有感于现在宅到极致的生活状态,故一篇图文并茂的文章诞生了(大