numpy中的sort

import numpy as np
  1. list使用sort,直接改变list(从小到大,升序)-->[].sort()
>>>a = [3,2,1]
>>>a.sort() ## 作用在a上
>>>a  ## 改变了a的值
[1,2,3]
>>>a.sort(reverse = True) ## 从大到小,降序
>>>a
[3,2,1]
  1. list中的sorted() ,不会改变原本的list
    sorted()也可以作用给array,但返回仍然是list
>>>a = [3,2,1]
>>>sorted(a)
[1,2,3]
>>>a
[3,2,1]  ##  a 本身并没有发生变化
>>>sorted(a,reverse=True)
[3,2,1] ## 从大到小(降序)
>>>sorted(np.array(a))
[1,2,3]
  1. np.sort()
    输入给np.sort()的参数可以是array也可以是list
    没有改变原本的值
>>>a = [3,2,1]
>>>np.sort(np.array(a))
array([1,2,3])
>>>np.sort(a)
array([1,2,3])

  1. np.argsort(a,axis = -1)-->返回数组值从小到大索引值
    例如
>>>x = np.array([3,1,2])
>>>np.argsort(a) #从小到大,按照升序排序
array([1,2,0])

从大到小排序

>>>x = np.array([3,1,2])
>>>np.argsort(-a) # 从大到小,按照降序排序,注意输入必须是np.array,不能是list
array([0,2,1])
>>>x = np.array([[0,3],[2,2]])
>>>np.argsort(a,axis = 0) # axis = 0 代表按列排序
array([[0,1],
       [1,0]])

5.两个数组同时排序
题目:有两个数组a,b,要求按照a中元素从小到大的顺序对b进行排序
例如:a=[4,3,5,2,9] , b = ['a','b','c','d','e']
希望输出:['d','b','a','c','e']

>>>sorted_index  = np.argsort(a)
>>>list( np.array( b )[sorted_index])
['d','b','a','c','e']

注意:
对于np.array(a = np.array([1,2,3,4,5,6]))
存在 :

 a[0] = 1
 a[np.array([0,3,5])] = array([1,4,6]) #多个索引,索引需要是array形式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容