Spec-Zone.ru › NumPy 1.13

numpy.partition

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

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

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

Введено в версии 1.8.0.

Параметры:

a : array_like

Массив, который нужно отсортировать.

kth : int или последовательность int

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

axis : int или None, необязательно

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

kind : {‘introselect’}, необязательно

Алгоритм выбора. По умолчанию – ‘introselect’.

order : str или список str, необязательно

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

Возвращает:

partitioned_array : ndarray

Массив того же типа и формы, что и 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])

© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.partition.html

Spec-Zone.ru

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