Spec-Zone.ru › NumPy 1.18

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

Полная сортировка

Примечания

Различные алгоритмы выбора характеризуются их средней скоростью, наихудшим случаем производительности, размером рабочего пространства и тем, являются ли они устойчивыми. Устойчивая сортировка сохраняет элементы с одинаковым ключом в том же относительном порядке. Доступные алгоритмы имеют следующие свойства:

kind

скорость

худший случай

рабочее пространство

устойчивость

‘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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/reference/generated/numpy.partition.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API