Numpy 排序 -- sort()、argsort()

Numpy 排序 – sort()、argsort()


官方文档


1、内容排序:sort()


函数原型: 对数组本身进行排序

numpy.sort(a, axis=-1, kind='quicksort', order=None)

参数:

  • a:要排序的 numpy 数组
  • axis:排序的维度,默认为-1最后一维,None为所有元素拉平后排序
  • kind:排序算法,有:‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’
  • order:多级排序的顺序,需要构建一个field

实例:

import numpy as np
a = np.array([[1,4],[3,1]])

# 默认按最后一维排序,每行各自排序
np.sort(a)               
=> narray([[1, 4],
           [1, 3]])

# 按地1维排序 ,每列各自排序         
np.sort(a, axis=0)
=> narray([[1, 1],
           [3, 4]])

# 所有元素排序
np.sort(a, axis=None)
=> narray([1, 1, 3, 4])

# 多级排序
dtype = [('name', 'S10'), ('height', float), ('age', int)]
values = [('Arthur', 1.8, 41),  ('Lancelot', 1.9, 38), ('Galahad', 1.7, 38)]
a = np.array(values, dtype=dtype)
np.sort(a, order='height')                        
=> array([('Galahad', 1.7, 38), ('Arthur', 1.8, 41), ('Lancelot', 1.8999999999999999, 38)],
      	 dtype=[('name', '|S10'), ('height', '<f8'), ('age', '<i4')])

2、下标排序:argsort()


函数原型: 数组本身不变,返回排序的下标数组

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

参数:

  • a:要排序的 numpy 数组
  • axis:排序的维度,默认为-1最后一维,None为所有元素拉平后排序
  • kind:排序算法,有:‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’
  • order:多级排序的顺序,需要构建一个field

实例:

import numpy as np

# 一维数组
x = np.array([3, 1, 2])
np.argsort(x)
=> array([1, 2, 0])

# 二维数组
x = np.array([[0, 3], [2, 2]])

np.argsort(x, axis=0)
=> array([[0, 1],
       	  [1, 0]])

np.argsort(x, axis=1)
=> array([[0, 1],
       	  [0, 1]])

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值