當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python numpy partition用法及代碼示例


本文簡要介紹 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])

相關用法


注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.partition。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。