numpy.ndarray.partition#
方法
- ndarray.partition(kth, axis=-1, kind='introselect', order=None)#
以某種方式部分排序陣列中的元素,使得第 k 個位置的元素值位於排序陣列中應有的位置。在輸出陣列中,所有小於第 k 個元素的元素都位於此元素的左側,而所有相等或更大的元素都位於其右側。輸出陣列中第 k 個元素任一側的兩個分割區中元素的順序是未定義的。
- 參數:
- kth整數或整數序列
要分割的元素索引。第 k 個元素值將位於其最終排序位置,所有較小的元素將移到它之前,所有相等或更大的元素將移到它之後。分割區中所有元素的順序是未定義的。如果提供 kth 序列,它將立即將它們索引的所有元素分割到其排序位置。
版本 1.22.0 開始棄用:不建議將布林值作為索引傳遞。
- axis整數,選用
要沿其排序的軸。預設值為 -1,表示沿最後一個軸排序。
- kind{‘introselect’},選用
選擇演算法。預設值為 ‘introselect’。
- order字串或字串列表,選用
當 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])