Функция за прилагане на NumPy

Funkcia Za Prilagane Na Numpy



Вградената библиотека, предлагана от Python, известна като NumPy, ни позволява да конструираме многомерни масиви, да ги модифицираме и да извършваме различни аритметични изчисления върху тях. Функцията за прилагане също се предоставя от пакета NumPy. Типичният случай на използване на функцията за прилагане е подобен на сценария, при който искаме да разделим масив и да извършим някои операции върху всеки елемент от списък, например, ако искаме да изравним всеки елемент от ред. Разбира се, в Python знаем, че for-циклите са бавни, така че бихме искали да ги избегнем, ако е възможно. Функцията „прилагане“ може да се използва, ако искате да извършите същата операция на всеки ред или колона от рамка с данни. С други думи, той прави това, което искате да направите с for-цикъл, без да се налага да пишете for-цикъл.

Има два метода за прилагане на която и да е функция към масива в зависимост от условието. Можем да приложим функцията „прилагане над оста“, която е полезна, когато прилагаме функцията върху всеки елемент от масива един по един и е полезна за n-мерните масиви. Вторият метод е „прилагане по оста“, който се прилага към едномерен масив.

Синтаксис:

Метод 1: Нанесете по оста

numpy. приложи_по_ос ( 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().



импортиране numpy като напр.

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

масив = напр. приложи_по_ос ( сортирани , 1 , обр )

печат ( 'оригиналния масив е:' , обр )

печат ( 'сортираният масив е:' , масив )





Както можем да видим в следния изход, ние показахме и двата масива. В първия стойностите се поставят на случаен принцип във всеки ред на матрицата. Но във втория можем да видим сортирания масив. Тъй като преминахме оста „1“, той не сортира пълния масив, но го сортира по ред, както се показва. Всеки ред е сортиран. Първият ред в дадения масив е „8, 1 и 7“. Докато в сортирания масив, първият ред е „1, 7 и 8“. По същия начин, всеки ред е сортиран.



Метод 2: Нанесете върху оста

numpy. прилагане_над_оси ( функ , а , брадви )

В дадения синтаксис имаме функция numpy.apply_over_axis, която отговаря за прилагането на функцията върху дадената ос. Във функцията apply_over_axis предаваме три аргумента. Първата е функцията, която трябва да бъде изпълнена. Вторият е самият масив. И последното е оста, върху която искаме да приложим функцията.

Пример 2:

В следващия пример изпълняваме втория метод на функцията „прилагане“, в който изчисляваме сумата на триизмерния масив. Едно нещо, което трябва да запомните е, че сумата от два масива не означава, че изчисляваме целия масив. В някои от масивите изчисляваме сумата по редове, което означава, че добавяме редовете и извличаме единичния елемент от тях.

Да преминем към нашия код. Първо импортираме пакета NumPy и след това създаваме променлива, която съдържа триизмерния масив. В нашия случай променливата е „arr“. В следващия ред създаваме друга променлива, която съдържа резултантния масив на функцията apply_over_axis. Присвояваме функцията apply_over_Axis на променливата “arr” с три аргумента. Първият аргумент е вградената функция на NumPy за изчисляване на сумата, която е np.sum. Вторият параметър е самият масив. Третият аргумент е оста, върху която се прилага функцията, в този случай имаме ос “[0, 2]”. В края на кода изпълняваме двата масива с помощта на оператора print().

импортиране numpy като напр.

обр = напр. масив ( [ [ [ 6 , 12 , две ] , [ две , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

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

масив = напр. прилагане_над_оси ( напр. сума , обр , [ 0 , две ] )

печат ( 'оригиналния масив е:' , обр )

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

Както е показано на следващата фигура, ние изчислихме някои от нашите триизмерни масиви с помощта на функцията apply_over_axis. Първият показан масив е оригиналният масив с формата на „2, 3, 3“, а вторият е сборът от редовете. Сумата на първия ред е „53“, на втория е „54“, а на последния е „57“.

Заключение

В тази статия проучихме как се използва функцията за прилагане в NumPy и как можем да приложим различните функции върху масиви по или над оста. Лесно е да приложите всяка функция върху желания ред или колона, като ги нарежете с помощта на методите за „прилагане“, предоставени от NumPy. Това е ефективен начин, когато не се налага да го прилагаме към целия масив. Надяваме се, че тази публикация ще ви бъде полезна, за да научите как да използвате метода на прилагане.