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-х значений, все элементы, индексированные этими значениями, будут разделены в свои отсортированные позиции сразу.
-
axis : int or None, optional -
Ось, вдоль которой происходит сортировка. Если None, массив сглаживается перед сортировкой. По умолчанию -1, что сортирует по последней оси.
-
kind : {‘introselect’}, optional -
Алгоритм выбора. По умолчанию ‘introselect’.
-
order : str or list of str, optional -
Когда
aявляется массивом с определёнными полями, этот аргумент указывает, какие поля сравнивать в первую очередь, вторую и т. д. Одно поле может быть указано в виде строки. Не все поля должны быть указаны, но неуказанные поля всё равно будут использоваться в порядке их появления в dtype, чтобы разрушить связи.
Возвращает: -
partitioned_array : ndarray -
Массив того же типа и формы, что и %%%CODE_BLOCK_8%%.
См. также
-
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.16.1/reference/generated/numpy.partition.html