Функция numpy.partition()

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии вы познакомитесь с функцией numpy.partition() библиотеки Numpy. Эта функция используется для разделения входного массива в соответствии с заданными аргументами и возвращает разделённую копию входного массива. Функция numpy.partition() полезна, когда нужно быстро найти k-й наименьший или наибольший элемент в массиве, не сортируя весь массив.

Советы по использованию ВМ

После запуска ВМ кликните в левом верхнем углу, чтобы переключиться на вкладку Ноутбук и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook загрузится. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импортируем библиотеку Numpy

Во - первых, нам нужно импортировать библиотеку Numpy, которая обычно используется для работы с массивами и матрицами в Python.

import numpy as np

Создаем входной массив

Далее мы создадим входной массив с использованием метода array() библиотеки Numpy. Этот массив будет нашим出发点ом для использования функции numpy.partition().

inp_ar = np.array([2, 0, 1, 5, 4, 9, 78, 34])
print("The input array:")
print(inp_ar)

Разделяем массив

Теперь мы будем использовать функцию numpy.partition() для разделения входного массива inp_ar вокруг пятого по величине наименьшего числа. Также выведем на печать результирующий разделенный массив.

output = np.partition(inp_ar, 5)
print("The partitioned array:")
print(output)

Разделение массива с несколькими значениями k

Функция numpy.partition() также позволяет разделять массив вокруг нескольких значений k. В этом примере мы разделим массив вокруг первого и третьего наименьших чисел.

arr = np.array([7, 4, 8, 1, 10, 13])
print("The input array:")
print(arr)

output = np.partition(arr, (1, 3))
print("The partitioned array:")
print(output)

Указание оси, вида сортировки и порядка

Функция numpy.partition() также имеет необязательные параметры, которые позволяют вам указать по какой оси производить разделение, какой вид сортировки выполнять и в каком порядке сравнивать поля. В этом примере мы будем использовать эти необязательные параметры для разделения двумерного массива по второй оси и указания вида сортировки и порядка.

arr_2d = np.array([[4, 5, 2], [3, 1, 6]])
print("The input 2D array:")
print(arr_2d)

output = np.partition(arr_2d, 1, axis=1, kind='heapsort', order=('col1', 'col2', 'col0'))
print("The partitioned 2D array:")
print(output)

Разделение с отрицательным значением k

Функция numpy.partition() также может обрабатывать отрицательные значения параметра k. В этом примере мы разделим массив вокруг второго по величине наименьшего числа.

arr = np.array([9, 3, 4, 1, 6])
print("The input array:")
print(arr)

output = np.partition(arr, -2)
print("The partitioned array:")
print(output)

Резюме

В этом практическом занятии вы узнали о функции numpy.partition() библиотеки Numpy. Мы рассмотрели, как создать входной массив, разделить его с использованием функции numpy.partition(), разделить вокруг нескольких значений k, указать ось, вид и порядок, а также обработать отрицательные значения k. Функция numpy.partition() полезна при работе с большими массивами, когда нужно быстро найти k-е наименьшее или наибольшее значение без сортировки всего массива.