Spec-Zone.ru › NumPy 1.15

numpy.partition

numpy.partition(a, kth, axis=-1, kind='introselect', order=None) [source]

Возвращает отсортированную копию массива.

Создаёт копию массива, элементы которого переупорядочены таким образом, что значение элемента в k-й позиции будет находиться в той позиции, в которой оно находилось бы в отсортированном массиве. Все элементы, меньшие, чем элемент k-й позиции, перемещаются перед этим элементом, а все равные или большие - после него. Порядок элементов в двух разделах не определён.

Новая в версии 1.8.0.

Параметры:
a : array_like

Массив для сортировки.

kth : int or sequence of ints

Индекс элемента для разбиения. Значение k-го элемента будет находиться в его окончательной позиции в отсортированном массиве, и все меньшие элементы будут перемещены перед ним, а все равные или большие элементы - после него. Порядок всех элементов в разделах не определён. Если задана последовательность k-тых значений, все элементы, индексируемые этими k-тыми значениями, будут одновременно помещены в свои отсортированные позиции.

axis : int or None, optional

Ось, по которой производится сортировка. Если None, массив сжимается перед сортировкой. По умолчанию -1, что сортирует по последней оси.

kind : {‘introselect’}, optional

Алгоритм выбора. По умолчанию «introselect».

order : str or list of str, optional

Когда a является массивом с определёнными полями, этот аргумент указывает, какие поля сравнивать в первую, вторую и т.д. очередь. Одно поле может быть указано как строка. Не все поля необходимо указывать, но неуказанные поля всё равно будут использоваться в порядке их появления в dtype для разбиения ничьих.

Возвращает:
partitioned_array : ndarray

Массив того же типа и формы, что и 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–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.partition.html

Spec-Zone.ru

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