np.unique np.argsort

删重排序

(np.unique(np.array([23,1,1])))
Out[35]: array([ 1, 23])

list(np.unique(np.array([23,1,1])))
Out[36]: [1, 23]

numpy.argsort(a, axis=-1, kind=’quicksort’, order=None)

功能: 将矩阵a按照axis排序,并返回排序后的下标
参数 描述
: a:输入矩阵
axis 排序沿数组的(轴)方向,0表示按行,1表示按列,None表示展开来排序,默认值为-1,表示沿最后的轴排序
kind 排序的算法,提供了快排’quicksort’、混排’mergesort’、堆排’heapsort’, 默认为‘quicksort’
order 排序的字段名,可指定字段排序,默认为None

返回值: 输出排序后的下标

>>> x = np.array([3, 1, 2])
>>> np.argsort(x)
array([1, 2, 0])
>>import numpy as np
 
>>> x = np.array([3, 1, 2])
>>> a=np.argsort(x)
>>a #升序
#argsort函数返回的是数组值从小到大的索引值,[3, 1, 2]从小到大为[1,2,3],期对应的索引为[1,2,0] 
array([1, 2, 0]) 
 
>>np.argsort(-x) #降序
array([0, 2, 1], dtype=int64)
 
>>x[a] #以排序后的顺序重构原数组
array([1, 2, 3])
 
#二维数组
>>x=np.array([[0,12,48],[4,18,14],[7,1,99]])
>>a1=np.argsort(x)
>>a1
array([[0, 1, 2],
       [0, 2, 1],
       [1, 0, 2]], dtype=int64)
#以排序后的顺序重构原数组,注意与一维数组的形式不一样
>>np.array([np.take(x[i],x[i].argsort())for i in range(3)])
array([[ 0, 12, 48],
       [ 4, 14, 18],
       [ 1,  7, 99]])
 
>>x[x[:,2].argsort()] #按照第三列对行进行排序
array([[ 4, 18, 14],
       [ 0, 12, 48],
       [ 7,  1, 99]])
 
>>x.T[x.T[:,2].argsort()].T #按照第三行对列进行排序
array([[12,  0, 48],
       [18,  4, 14],
       [ 1,  7, 99]])
 
>>x[:,x[2].argsort()]  #还可以这样写
array([[12,  0, 48],
       [18,  4, 14],
       [ 1,  7, 99]])
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值