本文簡要介紹 python 語言中 numpy.partition
的用法。
用法:
numpy.partition(a, kth, axis=- 1, kind='introselect', order=None)
返回數組的分區副本。
創建數組的副本,其元素以這樣的方式重新排列,即 k-th 位置中的元素值位於排序數組中的位置。所有小於k-th 元素的元素都移到該元素之前,所有等於或大於該元素的元素都移到它後麵。兩個分區中元素的順序未定義。
- a: array_like
要排序的數組。
- kth: int 或整數序列
要分區的元素索引。元素的k-th 值將處於其最終排序位置,所有較小的元素將移到它之前,所有相等或更大的元素都將移到它後麵。分區中所有元素的順序未定義。如果提供了 k-th 的序列,它將立即將由 k-th 索引的所有元素分區到它們的排序位置。
- axis: int 或無,可選
要排序的軸。如果為 None,則數組在排序前被展平。默認值為 -1,沿最後一個軸排序。
- kind: {‘introselect’},可選
選擇算法。默認為‘introselect’。
- order: str 或 str 列表,可選
當 a 是定義了字段的數組時,此參數指定要比較第一個、第二個等哪些字段。單個字段可以指定為字符串。並非所有字段都需要指定,但仍將使用未指定的字段,按照它們在 dtype 中出現的順序來打破平局。
- partitioned_array: ndarray
與 a 具有相同類型和形狀的數組。
參數:
返回:
注意:
各種選擇算法的特點是它們的平均速度、最壞情況下的性能、工作空間大小以及它們是否穩定。穩定的排序使具有相同鍵的項目保持相同的相對順序。可用的算法具有以下屬性:
種類
速度
最差的情況
工作空間
穩定的
‘introselect’
1
在)
0
no
當沿除最後一個軸以外的任何軸進行分區時,所有分區算法都會製作數據的臨時副本。因此,沿最後一個軸的分區比沿任何其他軸的分區更快且使用的空間更少。
複數的排序順序是字典順序。如果實部和虛部都不是nan,則順序由實部確定,除非它們相等,在這種情況下,順序由虛部確定。
例子:
>>> a = np.array([3, 4, 2, 1]) >>> np.partition(a, 3) array([2, 1, 3, 4])
>>> np.partition(a, (1, 3)) array([1, 2, 3, 4])
相關用法
- Python numpy pad用法及代碼示例
- Python numpy packbits用法及代碼示例
- Python numpy polyder用法及代碼示例
- Python numpy polynomial.polyfit用法及代碼示例
- Python numpy put_along_axis用法及代碼示例
- Python numpy polyfit用法及代碼示例
- Python numpy piecewise用法及代碼示例
- Python numpy polynomial.polyline用法及代碼示例
- Python numpy polynomial.polyadd用法及代碼示例
- Python numpy polynomial.polyder用法及代碼示例
- Python numpy pmt用法及代碼示例
- Python numpy promote_types用法及代碼示例
- Python numpy polyutils.as_series用法及代碼示例
- Python numpy percentile用法及代碼示例
- Python numpy polynomial.polydomain用法及代碼示例
- Python numpy poly用法及代碼示例
- Python numpy polynomial.polyint用法及代碼示例
- Python numpy polysub用法及代碼示例
- Python numpy prod用法及代碼示例
- Python numpy polyutils.getdomain用法及代碼示例
- Python numpy power用法及代碼示例
- Python numpy polyutils.mapdomain用法及代碼示例
- Python numpy putmask用法及代碼示例
- Python numpy polyutils.mapparms用法及代碼示例
- Python numpy polynomial.polydiv用法及代碼示例
注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.partition。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。