numpy.partition
- numpy.partition(a, kth, axis=- 1, kind='introselect', order=None)[source]
-
Возвращает отсортированную по разбиению копию массива.
Создаёт копию массива с переупорядоченными элементами таким образом, что значение элемента в k-й позиции будет находиться в той позиции, в которой оно должно находиться в отсортированном массиве. Все элементы, меньшие, чем k-й элемент, перемещаются перед этим элементом, а все равные или большие перемещаются за ним. Порядок элементов в двух разделах не определён.
Добавлена в версии 1.8.0.
- Параметры
-
- aarray_like
-
Массив, который нужно отсортировать.
- kthint или последовательность целых чисел
-
Индекс элемента для разбиения. Значение k-го элемента будет находиться в своей конечной позиции при сортировке, все меньшие элементы будут перемещены перед ним, а все равные или большие — после него. Порядок всех элементов в разделах не определён. Если предоставлена последовательность k-х значений, то все элементы, индексированные этими k-ми значениями, будут разнесены в их отсортированную позицию сразу.
- axisint или None, необязательно
-
Ось, по которой выполняется сортировка. Если None, массив сглаживается перед сортировкой. По умолчанию -1, что сортирует по последней оси.
- kind{‘introselect’}, необязательно
-
Алгоритм выбора. По умолчанию ‘introselect’.
- orderстрока или список строк, необязательно
-
Когда
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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.partition.html