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-го элемента будет находиться в его окончательной отсортированной позиции, а все меньшие элементы будут перемещены перед ним, а все равные или большие — за ним. Порядок всех элементов в разделах не определён. Если указана последовательность kth, все элементы, индексированные kth, будут разделены на свои отсортированные позиции сразу.
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–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.partition.html