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

标签:numpy,数组
0
投稿

猜你喜欢

  • pandas获取groupby分组里最大值所在的行方法

    2021-08-14 21:39:14
  • 关于Python排序sort()函数和sorted()函数

    2023-10-31 01:32:14
  • python openssl模块安装及用法

    2023-07-03 12:01:04
  • python和C语言混合编程实例

    2023-10-30 22:30:23
  • vue.js移动端app之上拉加载以及下拉刷新实战

    2024-05-09 10:40:22
  • 详解Python3中字符串中的数字提取方法

    2021-02-22 06:08:15
  • python正则表达式函数match()和search()的区别

    2021-10-05 10:25:52
  • JavaScript判断变量是否为undefined的两种写法区别

    2024-04-19 09:53:50
  • Python内置函数Type()函数一个有趣的用法

    2023-01-16 06:30:44
  • pytorch 带batch的tensor类型图像显示操作

    2023-06-02 08:47:26
  • Node.js中的process.nextTick使用实例

    2024-05-08 09:36:18
  • Python 实现购物商城,含有用户入口和商家入口的示例

    2023-09-26 11:39:46
  • Python提取视频帧图片实例代码

    2023-02-11 18:15:21
  • gulp-htmlmin压缩html的gulp插件实例代码

    2023-08-06 01:20:18
  • Python中音频处理库pydub的使用教程

    2023-07-15 20:22:54
  • 安装Pycharm2019以及配置anconda教程的方法步骤

    2021-10-04 18:43:08
  • 关于Vue3过渡动画的踩坑记录

    2024-06-07 16:03:35
  • 可爱动态背景输入框

    2009-05-07 13:50:00
  • python字符串常见使用操作方法介绍

    2023-12-11 00:20:28
  • 没编程基础可以学python吗

    2023-11-27 23:12:49
  • asp之家 网络编程 m.aspxhome.com