NumPy Применить функцию

Numpy Primenit Funkciu

Встроенная библиотека, предлагаемая Python, известная как NumPy, позволяет нам создавать многомерные массивы, изменять их и выполнять над ними различные арифметические вычисления. Функция применения также предоставляется пакетом NumPy. Типичный вариант использования функции применения аналогичен сценарию, в котором мы хотим разрезать массив и выполнить некоторые операции над каждым элементом списка, например, если мы хотим выровнять каждый элемент строки. Конечно, в Python мы знаем, что циклы for работают медленно, поэтому мы хотели бы избегать их, если это возможно. Функцию «применить» можно использовать, если вы хотите выполнить одну и ту же операцию для каждой строки или столбца фрейма данных. Другими словами, он делает то, что вы хотите сделать с помощью цикла for, без необходимости писать цикл for.

Существует два метода применения любой функции к массиву в зависимости от условия. Мы можем применить функцию «применить по оси», которая полезна, когда мы применяем функцию к каждому элементу массива один за другим, и она полезна для n-мерных массивов. Второй метод — «применить вдоль оси», который применяется к одномерному массиву.

Синтаксис:

Метод 1: применить вдоль оси

тупой. apply_along_axis ( 1d_функция , ось , обр , *аргументы , **кварги )

В синтаксисе у нас есть функция «numpy.apply», которой мы передаем пять аргументов. Первый аргумент, который называется «1d_function», работает с одномерным массивом, который требуется. В то время как второй аргумент, «ось», — это тот, по какой оси вы хотите разбить массив и применить эту функцию. Третий параметр — это «arr», который представляет собой заданный массив, к которому мы хотим применить функцию. В то время как «*args» и «*kwargs» являются дополнительными аргументами, которые не нужно добавлять.







Пример 1:

Двигаясь к лучшему пониманию методов «применить», мы выполняем пример, чтобы проверить работу методов применения. В этом случае мы выполняем функцию «apply_along_Axis». Приступим к нашему первому шагу. Сначала мы включаем наши библиотеки NumPy как np. Затем мы создаем массив с именем «arr», который содержит матрицу 3 × 3 с целыми значениями: «8, 1, 7, 4, 3, 9, 5, 2 и 6». В следующей строке мы создаем переменную с именем «массив», которая отвечает за хранение результата функции apply_along_Axis.



В эту функцию мы передаем три аргумента. Первая — это функция, которую мы хотим применить к массиву, в нашем случае это функция сортировки, потому что мы хотим, чтобы наш массив был отсортирован. Затем мы передаем второй аргумент «1», что означает, что мы хотим разрезать наш массив по оси = 1. Наконец, мы передаем массив, который должен быть отсортирован в этом случае. В конце кода мы просто печатаем оба массива — исходный массив и результирующий массив — которые отображаются с помощью оператора print().



импорт пустышка в качестве например

обр знак равно например множество ( [ [ 8 , 1 , 7 ] , [ 4 , 3 , 9 ] , [ 5 , два , 6 ] ] )

множество знак равно например apply_along_axis ( отсортированный , 1 , обр )

Распечатать ( 'исходный массив:' , обр )

Распечатать ( 'отсортированный массив:' , множество )





Как видно из следующего вывода, мы отобразили оба массива. В первом значения случайным образом размещаются в каждой строке матрицы. Но во втором мы видим отсортированный массив. Поскольку мы передали ось «1», он не отсортировал весь массив, а отсортировал его по строкам, как показано. Каждая строка сортируется. Первая строка в данном массиве — «8, 1 и 7». В отсортированном массиве первая строка — «1, 7 и 8». Точно так же каждая строка сортируется.



Способ 2: применить по оси

тупой. apply_over_axes ( функция , а , оси )

В данном синтаксисе у нас есть функция numpy.apply_over_axis, которая отвечает за применение функции на данной оси. Внутри функции apply_over_axis мы передаем три аргумента. Первая – это функция, которую необходимо выполнить. Второй - это сам массив. И последняя — это ось, на которой мы хотим применить функцию.

Пример 2:

В следующем примере мы выполняем второй метод функции «применить», в котором мы вычисляем сумму трехмерного массива. Следует помнить, что сумма двух массивов не означает, что мы вычисляем весь массив. В некоторых массивах мы вычисляем сумму по строкам, что означает, что мы добавляем строки и получаем из них один элемент.

Давайте перейдем к нашему коду. Сначала мы импортируем пакет NumPy, а затем создаем переменную, содержащую трехмерный массив. В нашем случае это переменная «arr». В следующей строке мы создаем еще одну переменную, которая содержит результирующий массив функции apply_over_axis. Мы присваиваем функцию apply_over_Axis переменной «arr» с тремя аргументами. Первый аргумент — это встроенная функция NumPy для вычисления суммы, которая равна np.sum. Второй параметр — это сам массив. Третий аргумент — это ось, по которой применяется функция, в данном случае у нас есть ось «[0, 2]». В конце кода мы выполняем оба массива с помощью оператора print().

импорт пустышка в качестве например

обр знак равно например множество ( [ [ [ 6 , 12 , два ] , [ два , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

[ [ 12 , 7 , 14 ] , [ два , 17 , 18 ] , [ 0 , двадцать один , 8 ] ] ] )

множество знак равно например apply_over_axes ( например сумма , обр , [ 0 , два ] )

Распечатать ( 'исходный массив:' , обр )

Распечатать ( 'сумма массива:' , множество )

Как показано на следующем рисунке, мы вычислили некоторые из наших трехмерных массивов с помощью функции apply_over_axis. Первый отображаемый массив — это исходный массив в форме «2, 3, 3», а второй — сумма строк. Сумма первой строки равна «53», второй — «54», а последней — «57».

Вывод

В этой статье мы изучили, как функция применения используется в NumPy и как мы можем применять различные функции к массивам вдоль или по оси. Любую функцию легко применить к нужной строке или столбцу, нарезав их с помощью методов «применить», предоставляемых NumPy. Это эффективный способ, когда нам не нужно применять его ко всему массиву. Мы надеемся, что вы найдете этот пост полезным для изучения того, как использовать метод применения.