数组的排序

1.arr.sort()

对数组元素进行排序,arr.sort()有返回值

import numpy as np
arr=np.array([4,5,23,11,56,78,25])

#result=sorted(arr,reverse=False) # sorted对列表进行排序
 print(result)------------------------------>[4, 5, 11, 23, 25, 56, 78]

arr.sort()
print(arr)--------------------------------->[ 4  5 11 23 25 56 78]

2.np.argsort(arr)

返回排序后数组元素的索引

argsort=np.argsort(arr)
print("argsort:\n",argsort)--------------->argsort:[0 1 2 3 4 5 6]

d2=np.array([[12,8,36],[22,45,9]])
print(d2)--------------------------------->[[12  8 36]
                                            [22 45  9]]

3.sort(axis=0,1)

多维数组排序

1)将多维数组按列方向进行排序
d2.sort(axis=0)
print("d2:\n",d2)------------------------->d2:
                                             [[12  8  9]
                                             [22 45 36]]2).将多维数组按行方向进行排序(默认为升序)
d2.sort(axis=1)
print("d2:\n",d2)------------------------->d2:
                                             [[ 8  9 12]
                                             [22 36 45]]

4.sort(arr1,axis=0,1)

d3=np.array([[12,8,36],
             [22,45,9],
             [10,30,12]])
(1)将多维数组按列进行排序,返回原列索引
print(np.argsort(d3,axis=0))--------------->[[2 0 1]
                                             [0 2 2]
                                             [1 1 0]]

(2)将多维数组按行进行排序,返回原行索引
print(np.argsort(d2,axis=1))--------------->[[0 1 2]
                                             [0 1 2]]


(3)将多维数组按行进行降序排序,返回原行索引
print(np.argsort(-d2,axis=1))-------------->[[2 1 0]
                                             [2 1 0]]

5. np.argmax()

找出最大值的索引,如果是多维数组,则返回值是将多维数组展平后最大值的索引

a=np.array([[12,56,96],
            [24,200,63]])
b=np.array([20,58,98,75,25,63,52])
argmaxA=np.argmax(a)
argmaxB=np.argmax(b)
print(argmaxA)--------------------------->4
print(argmaxB)--------------------------->2

6. np.argwhere()

根据条件在数组中搜索满足条件的元素,并分组返回对应索引

print("argwhere:\n",np.argwhere(b>50))----->[[1]
                                             [2]
                                             [3]
                                             [5]
                                             [6]]

print("argwhere:\n",np.argwhere(a>50))----->[[0 1]
                                             [0 2]
                                             [1 1]
                                             [1 2]]

7.searchsort ()

为需要添加到数组中的元素寻找合适的索引,使得原数组的排序顺序不变

sorted=np.arange(5)------------------------>[0 1 2 3 4]
print("添加新元素之前:\n",sorted)------------>添加新元素之前:[0 1 2 3 4]
indices=np.searchsorted(sorted,[-2,7])
print("寻找到的插入位置索引:\n",indices)----->寻找到的插入位置索引:[0 5]
newsorted=np.insert(sorted,indices,[-2,7])
print(newsorted)--------------------------->[-2  0  1  2  3  4  7]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值