Введение
В этом практическом занятии вы познакомитесь с функцией 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-е наименьшее или наибольшее значение без сортировки всего массива.