NumPy学习笔记(一)—— argsort()函数

一、前言

最近写NLP有关代码,总会使用NumPy中的知识。索性开个新专栏,用于记录改三方库下的学习积累。

二、官方文档

在这里插入图片描述

三、一言以蔽之

参数:

a:传入的待排序数组

axis(int型,可选填)

把第axis轴对数组进行排序。

默认为-1,为最后一个轴。

如果没有该参数,则展平数组a。

重点

维数axis=-1时所代表的轴
一维数组只有0轴0轴
二维数组有0、1轴1轴
······
递推:N维数组有[0,N-1]个轴N-1轴

总结:0轴是列方向,1轴是行方向

kind

使用kind=‘quicksort’ (默认)指定的算法沿给定的轴进行排序。

或者可选使用kind='mergesort’(归并排序)和kind=‘heapsort’(堆排序)

order(str/str列表型,可选填)

如果数组a是定义了字段的数组(str或者str列表),这个参数会指定比较前两个参数的某些字段。可以把单个的字段指定为字符串(不一定是所有字段),但是会仍在数据类型(dtype)中出现的顺序使用剩下未指定的字段来打破关系。

返回值

它返回一个与 数组a形状相同的索引数组,该数组以排序顺序沿给定轴索引数据。

如果数组a是一维的话,会得到一个排好序的数组。

四、代码案例

# 一维数组案例
import numpy as np

x = np.array([6,4,5])
z = np.argsort(x)

print(np.argsort(x))
print(x[z])

'''
np.argsort(x):	[1 2 0]			# 数组中数据的序号
x:	[4 5 6]				# 数组中的数据
'''
# 二维数组案例
import numpy as np

y = np.array([[7,10],
              [9,8]])
z1 = np.argsort(y,axis=-1)	# 因为是二维数组,所以-1位最后一轴(即1轴)旋转
z2 = np.argsort(y,axis=0)	# 沿0轴旋转
z3 = np.argsort(y,axis=1)	# 沿1轴(当前轴)旋转

print(np.argsort(y))
print('y[z1]:',y[z1])
print('y[z2]):',y[z2])
print('y[z3]):',y[z3])

'''
np.argsort(y):  [[0 1]		对应着[	[7,10]
 				 [1 0]]				[8,9]  ]

y[z1]: [	# 沿着-1轴旋转
			[ [ 7 10]
  			  [ 9  8] ]

	 		[ [ 9  8]
       		  [ 7 10] ]

		]

y[z2]): [	沿着第0轴旋转
			[ [ 7 10]
 			  [ 9  8] ]

 			[ [ 9  8]
  			  [ 7 10] ]
  		]

y[z3]): [	
			[ [ 7 10]
 			  [ 9  8] ]

 			[ [ 9  8]
  			  [ 7 10] ]
  		]
'''
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值