📜  numpy recarray.argpartition()函数| Python(1)

📅  最后修改于: 2023-12-03 15:18:02.969000             🧑  作者: Mango

Numpy recarray.argpartition()函数

numpy.recarray.argpartition()函数是一个在记录数组中执行间接分区的函数。它返回一个记录数组,其元素被划分为小于k和大于等于k两部分,但不一定是有序的。

语法
numpy.recarray.argpartition(self, kth, axis=-1, kind='introselect', order=None)
其中:
  • self:输入数组。
  • kth:所需分区的元素索引或元素。
  • axis:沿着此轴执行排序的轴。不指定时默认为最后一个轴。
  • kind:选择数据将被划分的算法。可用算法包括“introselect”(默认),“heapsort”和“quicksort”。
  • order:要排序的字段。
返回值

函数的返回值是一个记录数组,包含被分区的输入数组的索引数组。例如,如果输入数组被按照某个字段排序,则返回的索引数组将仅在该字段中分区。

示例
import numpy as np

# 定义一个记录数组
dt = np.dtype([('name', 'S10'), ('age', int), ('height', float)])
a = np.array([('lihua', 21, 175.2), ('xiaohei', 22, 182.1), ('xiaoming', 20, 178.4)], dtype=dt)

# 按年龄字段进行分区,小于22的在左侧,大于等于22的在右侧,但元素不一定有序。
print(a.argpartition(1))

输出:

[2 0 1]

在上面的示例中,输入的记录数组中的第一个元素都被区分为小于等于22或大于22的两部分。对于a.argpartition(1),输出的分区后的索引数组为[2,0,1]