Автор оригинала: Pythonista.
numpy.argpartition(a, kth, axis=-1, kind='introselect', order=None)
Numpy Функция аргпатина Выполняет косвенный раздел вдоль заданной оси с использованием алгоритма, указанного в добрый
ключевое слово. Он возвращает массив индексов той же формы, что и данные индекса по данной оси в разделе «Разделенный порядок».
Array_Like или Poly1D объект | c | Входные полиномы будут умножены |
целое число или последовательность целых чисел | клей | Индекс элемента для раздела. K-TH-TH-элемент будет в его окончательном отсортированном положении, и все меньшие элементы будут перемещены до того, как он и все более широкие элементы за ним. Заказ всех элементов в разделах неопределен. Если снабжены последовательностью K-TH, она разделяет всех из них в их сортировку одновременно. |
целое число или нет | ось | (По желанию.) Ось вдоль которой для сортировки. По умолчанию – 1 (последняя ось). Если нет, используется сплющенный массив. |
{interoselect ‘} | Добрый | (По желанию.) Алгоритм выбора. По умолчанию «INTROSELECT». |
строка или список строк | порядок | (По желанию.) Когда A – массив с определенным полями, этот аргумент определяет, какие поля для сравнения первой, второй и т. Д. Одно поле может быть указано в виде строки, а не все поля должны быть указаны, но не указанные поля будут использоваться, в том порядке, в котором они придумывают в DTYPE, чтобы нарушить связи. |
В следующей таблице отображается возвращаемое значение функции:
Индексный массив: массив, int | Возвращаемое значение | Массив индексов, которые разделяют вдоль указанной оси. Если A одноразмерный, а также [индексный массив] дает разделенный а. В целом np.take_along_axis (A, индексный массив) всегда дает разделенный раздел, независимо от размерности. |
Связанный : См. Раздел
Для примечаний на различных алгоритмах выбора.
Давайте погрузимся в несколько примеров, чтобы показать, как функция используется на практике:
Примеры
Одномерный массив:
import numpy as np x = np.array([3, 4, 2, 1]) print(x[np.argpartition(x, 3)]) # [2 1 3 4] print(x[np.argpartition(x, (1, 3))]) # [1 2 3 4]
Многомерный массив:
import numpy as np x = np.array([3, 4, 2, 1]) print(x[np.argpartition(x, 3)]) # [2 1 3 4] print(x[np.argpartition(x, (1, 3))]) # [1 2 3 4] x = [3, 4, 2, 1] print(np.array(x)[np.argpartition(x, 3)]) # [2 1 3 4]
Любой магистерский кодер имеет «практический» менталитет с уклоном к действию. Попробуйте сам – играть с функцией в следующем интерактивном коде оболочка:
Упражнение : Измените параметры своих полиномов и распечатайте их без сравнения. Вы понимаете, откуда они приходят?
Master Numpy-и стать наукой данных Pro:
Связанное видео.
Оригинал: “https://blog.finxter.com/numpy-argpatition/”