当前位置:   article > 正文

python二维数组按某行某列顺序、逆序排序_python二维数组逆序

python二维数组逆序

List
1、一维数组

2、二维数组

无论是一维数组还是二维数组都能通过 list 自带的 sort() 函数进行更新,或者直接调用sorted()方法即可。

  1. import numpy as np
  2. a = [3,4,5,1,2,3]
  3. b = [[3,4,5],[2,3,4]]
  4. c = [[3,4,5],[3,3,4]]
  5. a.sort()
  6. b.sort()
  7. c.sort()
  8. print(a) #直接调用sorted()方法,print(sorted(a))
  9. print(b)
  10. print(c)

Array
1、一维数组

1)argsort()

对一维数组进行排序可使用数组自带的a.argsort(),或者使用np.argsort(a)

  1. >>>np.argsort(a) #按升序排列
  2. >>> np.argsort(-a) #按降序排列

另一种降序排列的方法:                                                                                                                                                                    >>> a =

  1. x[np.argsort(x)]
  2. >>> a[::-1]
  1. a = np.array([3,4,5,1,2,3])
  2. print(a.argsort())     # 同np.argsort(a)


得到数组的排序索引 

 

根据索引,我们采用 a[a.argsort()]即可得到

  1.  >>>a[np.argsort(x)] #通过索引值排序后的数组  
  2. >>>a[np.argsort(-x)]
  1. a = np.array([3,4,5,1,2,3])
  2. print(a[a.argsort()])


2二维数组

1)argsort()

  1. >>> x = np.array([[0, 3], [2, 2]])
  2. >>> x
  3. array([[0, 3],
  4. [2, 2]])
  1. >>> np.argsort(x, axis=0) #按列排序
  2. array([[0, 1],
  3. [1, 0]])
  1. >>> np.argsort(x, axis=1) #按行排序
  2. array([[0, 1],
  3. [0, 1]])

2)lexsort()

lexsort支持对数组按指定行或列的顺序排序;是间接排序,lexsort不修改原数组,返回索引。

(对应lexsort 一维数组的是argsort a.argsort()这么使用就可以;argsort也不修改原数组, 返回索引)

  1. >>> a
  2. array([[ 2,  7,  4,  2],
  3.        [35,  9,  1,  5],
  4.        [22, 12,  3,  2]])

 

按最后一列顺序排序

  1. >>> a[np.lexsort(a.T)]
  2. array([[22, 12,  3,  2],
  3.        [ 2,  7,  4,  2],
  4.        [35,  9,  1,  5]])

 

按最后一列逆序排序

  1. >>>a[np.lexsort(-a.T)]
  2. array([[35,  9,  1,  5],
  3.        [ 2,  7,  4,  2],
  4.        [22, 12,  3,  2]])

 

按第一列顺序排序

  1. >>> a[np.lexsort(a.T)]
  2. array([[22, 12,  3,  2],
  3.        [ 2,  7,  4,  2],
  4.        [35,  9,  1,  5]])

 

按最后一行顺序排序

  1. >>> a.T[np.lexsort(a)].T
  2. array([[ 2,  4,  7,  2],
  3.        [ 5,  1,  9, 35],
  4.        [ 2,  3, 12, 22]])

按第一行顺序排序

  1. >>> a.T[np.lexsort(a[::-1,:])].T
  2. array([[ 2,  2,  4,  7],
  3.        [ 5, 35,  1,  9],
  4.        [ 2, 22,  3, 12]])


参考:https://blog.csdn.net/qq_20135597/article/details/84204903

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/648915
推荐阅读
相关标签
  

闽ICP备14008679号