numpy.recarray.partition#

方法

recarray.partition(kth, axis=-1, kind='introselect', order=None)#

以某種方式部分排序陣列中的元素,使第 k 個位置的元素值位於排序陣列中應有的位置。在輸出陣列中,所有小於第 k 個元素的元素都位於此元素的左側,而所有等於或大於第 k 個元素的元素都位於其右側。輸出陣列中第 k 個元素任一側的兩個分割區中元素的順序未定義。

參數:
kthint 或 int 序列

要分割的元素索引。第 k 個元素值將位於其最終排序位置,所有較小的元素將移到其前面,所有相等或較大的元素將移到其後面。分割區中所有元素的順序未定義。如果提供 kth 序列,它將立即將其中 kth 索引的所有元素分割到其排序位置。

版本 1.22.0 已棄用:不建議將布林值作為索引傳遞。

axisint,選用

要沿其排序的軸。預設值為 -1,表示沿最後一個軸排序。

kind{‘introselect’},選用

選擇演算法。預設值為 ‘introselect’。

orderstr 或 str 列表,選用

a 是定義欄位的陣列時,此引數指定要先比較哪個欄位,然後比較第二個欄位,依此類推。單個欄位可以指定為字串,並非所有欄位都需要指定,但未指定的欄位仍將按照它們在 dtype 中出現的順序用於打破平局。

另請參閱

numpy.partition

傳回陣列的分割副本。

argpartition

間接分割。

sort

完整排序。

筆記

有關不同演算法的筆記,請參閱 np.partition

範例

>>> import numpy as np
>>> a = np.array([3, 4, 2, 1])
>>> a.partition(3)
>>> a
array([2, 1, 3, 4]) # may vary
>>> a.partition((1, 3))
>>> a
array([1, 2, 3, 4])