📅  最后修改于: 2023-12-03 15:18:03.811000             🧑  作者: Mango
NumPy是一个功能强大的Python库,它提供了许多用于数学、科学和工程计算的实用函数。其中包括排序和搜索功能,本文将介绍NumPy中的排序和搜索函数以及它们的使用方法。
numpy.sort()
函数用于对数组进行排序,它可以对一维和多维数组进行排序,默认情况下使用升序排序。
import numpy as np
arr = np.array([3, 2, 1, 4, 5])
sorted_arr = np.sort(arr)
print(sorted_arr)
# 输出结果:[1 2 3 4 5]
如果需要进行降序排序,则可以设置参数kind='quicksort'
。
import numpy as np
arr = np.array([3, 2, 1, 4, 5])
sorted_arr = np.sort(arr)[::-1]
print(sorted_arr)
# 输出结果:[5 4 3 2 1]
numpy.argsort()
函数返回数组排序后的索引值,而不是排序后的值。
import numpy as np
arr = np.array([3, 2, 1, 4, 5])
idx = np.argsort(arr)
print(idx)
# 输出结果:[2 1 0 3 4]
如果需要对多维数组进行排序,则可以设置参数axis
指定排序的维度。
import numpy as np
arr = np.array([[3, 2, 1],
[6, 5, 4]])
idx = np.argsort(arr, axis=1)
print(idx)
# 输出结果:[[2 1 0]
# [2 1 0]]
numpy.where()
函数用于根据指定条件返回相应的索引值。
import numpy as np
arr = np.array([3, 2, 1, 4, 5])
idx = np.where(arr > 3)
print(idx)
# 输出结果:(array([3, 4], dtype=int64),)
如果需要返回满足条件的值,则可以使用np.extract()
函数。
import numpy as np
arr = np.array([3, 2, 1, 4, 5])
values = np.extract(arr > 3, arr)
print(values)
# 输出结果:[4 5]
numpy.searchsorted()
函数用于在已排序的数组中搜索插入值的位置,如果插入值已经存在,则返回插入的位置。
import numpy as np
arr = np.array([1, 3, 5, 7, 9])
idx = np.searchsorted(arr, 6)
print(idx)
# 输出结果:3
如果需要搜索多个值,则可以使用数组作为第二个参数,并返回一个数组。
import numpy as np
arr = np.array([1, 3, 5, 7, 9])
idx = np.searchsorted(arr, [2, 4, 6])
print(idx)
# 输出结果:[1 2 3]
NumPy中的排序和搜索函数为我们提供了快速、高效的数据处理能力,可以大大提高计算效率。除了本文介绍的函数外,NumPy库还提供了许多其他的数学、科学和工程计算函数,读者可以根据需要自行探索。