numpy.partition
-
numpy.partition(a, kth, axis=-1, kind='introselect', order=None)[source] -
Возвращает отсортированную по порядку копию массива.
Создаёт копию массива, элементы которой переупорядочены таким образом, что значение элемента в k-й позиции будет находиться в той позиции, в которой оно было бы в отсортированном массиве. Все элементы, меньшие, чем элемент k-й позиции, перемещаются перед этим элементом, а все равные или большие перемещаются за ним. Порядок элементов в двух разделах не определён.
Введено в версии 1.8.0.
- Параметры
-
-
aarray_like -
Массив для сортировки.
-
kthint or sequence of ints -
Индекс элемента для разбиения. Значение k-го элемента будет находиться в его конечной позиции в отсортированном массиве, а все меньшие элементы будут перемещены перед ним, а все равные или большие — за ним. Порядок всех элементов в разделах не определён. Если указана последовательность k-х значений, все элементы, индексируемые k-ми значениями, будут разделяться на свои сортированные позиции сразу.
-
axisint or None, optional -
Ось, по которой производится сортировка. Если None, массив сжимается в вектор-строку перед сортировкой. По умолчанию -1, что сортирует по последней оси.
-
kind{‘introselect’}, optional -
Алгоритм выбора. По умолчанию ‘introselect’.
-
orderstr or list of str, optional -
Когда
aпредставляет собой массив с определёнными полями, этот аргумент указывает, какие поля сравнивать первыми, вторыми и т. д. Одно поле можно указать как строку. Не все поля должны быть указаны, но не указанные поля всё равно будут использованы в порядке, в котором они появляются в dtype, чтобы разбить связи.
-
- Возвращает
-
-
partitioned_arrayndarray -
Массив того же типа и формы, что и
a.
-
См. также
-
ndarray.partition -
Метод сортировки массива на месте.
-
argpartition -
Непрямое разбиение.
-
sort -
Полная сортировка
Примечания
Различные алгоритмы выбора характеризуются своей средней скоростью, наихудшим случаем, размером рабочей области и тем, являются ли они стабильными. Стабильная сортировка сохраняет элементы с одинаковым ключом в том же относительном порядке. Доступные алгоритмы имеют следующие свойства:
вид
скорость
наихудший случай
рабочая область
стабильный
‘introselect’
1
O(n)
0
нет
Все алгоритмы разбиения создают временные копии данных при разбиении по любой оси, кроме последней. Поэтому разбиение по последней оси быстрее и использует меньше памяти, чем разбиение по любой другой оси.
Порядок сортировки для комплексных чисел является лексикографическим. Если и действительная, и мнимая части не являются 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])
© 2005–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.partition.html