Numpy搜索与排序

目录

1、排序函数

2、搜索函数

3、条件搜索


1、排序函数

下表是对各种排序算法的平均速度、最快情况性能、工作空间大小和稳定性的比较。

种类速度最坏情况工作空间稳定性
'quicksort'1O(n^2)0不稳定
'heapsort'3O(n*log(n))0不稳定
'mergesort'2O(n*log(n))~n/2稳定

① sort函数

返回数组元素升序排序结果。不会修改原数组中元素顺序。

可以使用参数kind指定排序算法。kind : {'quicksort', 'mergesort', 'heapsort', 'stable'}

arr = np.array([1, 3, 5, 2, 0, 9, 6, 8, 4])
print("arr:", arr, "np.sort(arr):", np.sort(arr),
      "sorted(arr, reverse=True):", sorted(arr, reverse=True), sep="\n")
# arr:
# [1 3 5 2 0 9 6 8 4]
# np.sort(arr):
# [0 1 2 3 4 5 6 8 9]
# sorted(arr, reverse=True):
# [9, 8, 6, 5, 4, 3, 2, 1, 0]

如果想要降序排序,可以使用函数sorted函数。

② argsort函数

返回数组升序排序后的索引值。不会修改原数组中元素顺序。

print("-" * 32, "argsort", "-" * 32)
arr = np.array([1, 3, 5, 2, 0, 9, 6, 8, 4])
print("arr:", arr, "np.argsort(arr):", np.argsort(arr), sep="\n")
# arr:
# [1 3 5 2 0 9 6 8 4]
# np.argsort(arr):
# [4 0 3 1 8 2 6 7 5]

2、搜索函数

① argmin函数。返回最小元素的索引值。

② argmax函数。返回最大元素的索引值。

print("-" * 32, "搜索函数", "-" * 32)
arr = np.array([1, 3, 5, 2, 0, 9, 6, 8, 4])
print("arr:", arr, "np.argmin(arr):", np.argmin(arr), "np.argmax(arr):", np.argmax(arr), sep="\n")
# arr:
# [1 3 5 2 0 9 6 8 4]
# np.argmin(arr):
# 4
# np.argmax(arr):
# 5

3、条件搜索

① where函数。where(condition, [x, y])等价于condition ? x : y。如果满足条件返回x否则返回y。

② extract函数。返回数组中满足条件的元素。

print("-" * 32, "条件搜索", "-" * 32)
arr = np.array([1, 3, 5, 2, 0, 9, 6, 8, 4])
print("arr:", arr, "np.where(arr > 4, 1, 0):", np.where(arr > 4, 1, 0),
      "np.extract(arr > 4, arr):", np.extract(arr > 4, arr), sep="\n")
# arr:
# [1 3 5 2 0 9 6 8 4]
# np.where(arr > 4, 1, 0):
# [0 0 1 0 0 1 1 1 0]
# np.extract(arr > 4, arr):
# [5 9 6 8]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值