官方文档:https://numpy.org/doc/stable/reference/generated/numpy.partition.html
官方给出的说明是:
即:以第'k-th'位置为基准,该位置的元素位于对原始数组排序之后的位置,大于该元素值的元素被放置在该元素的后面,小于该元素值的元素被放置在该元素的前面,前后两端的元素排列顺序无要求。
代码测试:
a = np.array([3, 4, 2, 1]) # [1, 2, 3, 4]
print(a)
print(np.partition(a, 3))
print(np.partition(a, (1, 3)))
'''
输出:
[3 4 2 1]
[2 1 3 4]
[1 2 3 4]
'''
数组[3, 4, 2, 1]排序之后的顺序是[1, 2, 3, 4],在位置'3'的元素数值为'3',小于'3'的元素'1, 2'被移动到前面,'4'被移动到后面,得到结果。
当参数为元祖'(1, 3)'时,即是以位置'1'和'3'为基准,对原数组进行移动处理。
参考:
https://stackoverflow.com/questions/41484104/how-numpy-partition-work
https://blog.csdn.net/weixin_42001089/article/details/89204112