Funcția NumPy Apply

Functia Numpy Apply



Biblioteca încorporată oferită de Python, cunoscută sub numele de NumPy, ne permite să construim tablouri multidimensionale, să le modificăm și să efectuăm diverse calcule aritmetice pe ele. Funcția de aplicare este oferită și de pachetul NumPy. Cazul de utilizare tipic pentru funcția de aplicare este similar cu scenariul în care dorim să tăiem o matrice și să efectuăm unele operații pe fiecare element dintr-o listă, de exemplu, dacă dorim să împărțim fiecare element dintr-un rând. Desigur, în Python, știm că buclele for sunt lente, așa că am dori să le evităm dacă este posibil. Funcția „aplica” poate fi folosită dacă doriți să faceți aceeași operație pe fiecare rând sau coloană a unui cadru de date. Cu alte cuvinte, face ceea ce doriți să faceți cu o buclă for fără a fi nevoie să scrieți o buclă for.

Există două metode de a aplica orice funcție la matrice, în funcție de condiție. Putem aplica funcția „aplicare peste axă”, care este utilă atunci când aplicăm funcția pe fiecare element al tabloului unul câte unul și este utilă pentru tablourile n-dimensionale. A doua metodă este „aplicați de-a lungul axei”, care se aplică unei matrice unidimensionale.

Sintaxă:

Metoda 1: Aplicați de-a lungul axei

numpy. aplica_de-a lungul axei ( 1d_function , axă , arr , *args , **quargs )

În sintaxă, avem funcția „numpy.apply” căreia îi trecem cinci argumente. Primul argument care este „1d_function” operează pe tabloul unidimensional, care este necesar. În timp ce al doilea argument, „axa”, este cel pe care axă doriți să tăiați matricea și să aplicați acea funcție. Al treilea parametru este „arr”, care este matricea dată la care dorim să aplicăm funcția. În timp ce „*args” și „*kwargs” sunt argumente suplimentare care nu sunt necesare pentru a le adăuga.







Exemplul 1:

Îndreptându-ne către o mai bună înțelegere a metodelor de „aplicare”, realizăm un exemplu pentru a verifica funcționarea metodelor de aplicare. În acest caz, executăm funcția „apply_along_Axis”. Să trecem la primul nostru pas. Mai întâi includem bibliotecile noastre NumPy ca np. Și apoi, creăm o matrice numită „arr” care conține o matrice 3×3 cu valori întregi care sunt „8, 1, 7, 4, 3, 9, 5, 2 și 6”. În următoarea linie, creăm o variabilă numită „array” care este responsabilă pentru păstrarea rezultatului funcției apply_along_Axis.



La acea funcție îi trecem trei argumente. Prima este funcția pe care dorim să o aplicăm matricei, în cazul nostru este funcția sortată deoarece dorim ca matricea noastră să fie sortată. Apoi, trecem al doilea argument „1”, ceea ce înseamnă că dorim să tăiem matricea de-a lungul axei=1. În cele din urmă, trecem matricea care urmează să fie sortată în acest caz. La sfârșitul codului, pur și simplu imprimăm ambele matrice – matricea originală, precum și matricea rezultată – care sunt afișate folosind instrucțiunea print().



import numpy la fel de de exemplu.

arr = de exemplu. matrice ( [ [ 8 , 1 , 7 ] , [ 4 , 3 , 9 ] , [ 5 , Două , 6 ] ] )

matrice = de exemplu. aplica_de-a lungul axei ( sortat , 1 , arr )

imprimare ( 'matricea originală este:' , arr )

imprimare ( 'matricea sortată este:' , matrice )





După cum putem vedea în următoarea ieșire, am afișat ambele matrice. În primul, valorile sunt plasate aleatoriu în fiecare rând al matricei. Dar în al doilea, putem vedea matricea sortată. De când am trecut de axa „1”, nu a sortat matricea completă, dar a sortat-o ​​pe rând, așa cum este afișat. Fiecare rând este sortat. Primul rând din matricea dată este „8, 1 și 7”. În timp ce se află în matricea sortată, primul rând este „1, 7 și 8”. La fel ca acesta, fiecare rând este sortat.



Metoda 2: Aplicați peste axa

numpy. aplica_peste_axe ( func , A , topoare )

În sintaxa dată, avem funcția numpy.apply_over_axis care este responsabilă pentru aplicarea funcției pe axa dată. În cadrul funcției apply_over_axis, trecem trei argumente. Prima este funcția care urmează să fie îndeplinită. Al doilea este matricea în sine. Iar ultima este axa pe care vrem să aplicăm funcția.

Exemplul 2:

În exemplul următor, efectuăm a doua metodă a funcției „aplica” în care calculăm suma matricei tridimensionale. Un lucru de reținut este că suma a două matrice nu înseamnă că calculăm întreaga matrice. În unele dintre matrice, calculăm suma pe rând, ceea ce înseamnă că adunăm rândurile și obținem singurul element din ele.

Să trecem la codul nostru. Mai întâi importăm pachetul NumPy și apoi creăm o variabilă care conține matricea tridimensională. În cazul nostru, variabila este „arr”. În următoarea linie, creăm o altă variabilă care deține matricea rezultată a funcției apply_over_axis. Atribuim funcția apply_over_Axis variabilei „arr” cu trei argumente. Primul argument este funcția încorporată a NumPy pentru a calcula suma care este np.sum. Al doilea parametru este matricea în sine. Al treilea argument este axa peste care se aplică funcția, în acest caz avem axa „[0, 2]”. La sfârșitul codului, executăm ambele matrice folosind instrucțiunea print().

import numpy la fel de de exemplu.

arr = de exemplu. matrice ( [ [ [ 6 , 12 , Două ] , [ Două , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

[ [ 12 , 7 , 14 ] , [ Două , 17 , 18 ] , [ 0 , douăzeci și unu , 8 ] ] ] )

matrice = de exemplu. aplica_peste_axe ( de exemplu. sumă , arr , [ 0 , Două ] )

imprimare ( 'matricea originală este:' , arr )

imprimare ( 'suma matricei este:' , matrice )

După cum se arată în figura următoare, am calculat unele dintre matricele noastre tridimensionale folosind funcția apply_over_axis. Prima matrice afișată este matricea originală cu forma „2, 3, 3”, iar a doua este suma rândurilor. Suma pe primul rând este „53”, a doua este „54” ​​și ultima este „57”.

Concluzie

În acest articol, am studiat modul în care funcția de aplicare este utilizată în NumPy și cum putem aplica diferitele funcții pe matrice de-a lungul sau deasupra axei. Este ușor să aplicați orice funcție pe rândul sau coloana dorită prin tăierea lor folosind metodele de „aplicare” oferite de NumPy. Este o modalitate eficientă atunci când nu trebuie să o aplicăm întregii matrice. Sperăm că veți găsi această postare benefică pentru a învăța cum să utilizați metoda de aplicare.