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])