Funció d'aplicació NumPy

Funcio D Aplicacio Numpy



La biblioteca integrada que ofereix Python, coneguda com NumPy, ens permet construir les matrius multidimensionals, modificar-les i realitzar-hi diversos càlculs aritmètics. La funció d'aplicació també la proporciona el paquet NumPy. El cas d'ús típic de la funció d'aplicació és similar a l'escenari en què volem tallar una matriu i realitzar algunes operacions sobre cada element d'una llista, per exemple, si volem quadrar cada element d'una fila. Per descomptat, a Python, sabem que els bucles for són lents, així que ens agradaria evitar-los si és possible. La funció 'aplica' es pot utilitzar si voleu fer la mateixa operació a cada fila o columna d'un marc de dades. En altres paraules, fa el que voleu fer amb un bucle for sense haver d'escriure un bucle for.

Hi ha dos mètodes per aplicar qualsevol funció a la matriu depenent de la condició. Podem aplicar la funció 'aplicar sobre l'eix' que és útil quan apliquem la funció a cada element de la matriu un per un, i és útil per a les matrius n-dimensionals. El segon mètode és 'aplicar al llarg de l'eix', que s'aplica a una matriu unidimensional.

Sintaxi:

Mètode 1: aplicar al llarg de l'eix

numpy. aplicar_al llarg de l'eix ( funció_1d , eix , arr , *args , **quargs )

A la sintaxi, tenim la funció “numpy.apply” a la qual passem cinc arguments. El primer argument que és '1d_function' funciona a la matriu unidimensional, que és necessària. Mentre que el segon argument, l''eix', és el sobre quin eix voleu tallar la matriu i aplicar aquesta funció. El tercer paràmetre és 'arr', que és la matriu donada a la qual volem aplicar la funció. Mentre que els '*args' i '*kwargs' són els arguments addicionals que no cal afegir.







Exemple 1:

Avançant cap a una millor comprensió dels mètodes d'aplicació, realitzem un exemple per comprovar el funcionament dels mètodes d'aplicació. En aquest cas, realitzem la funció 'aplicar_al llarg de l'eix'. Anem al nostre primer pas. Primer incloem les nostres biblioteques NumPy com a np. A continuació, creem una matriu anomenada 'arr' que conté una matriu de 3 × 3 amb valors enters que són '8, 1, 7, 4, 3, 9, 5, 2 i 6'. A la línia següent, creem una variable anomenada 'array' que és responsable de mantenir el resultat de la funció apply_along_Axis.



A aquesta funció li passem tres arguments. La primera és la funció que volem aplicar a la matriu, en el nostre cas és la funció ordenada perquè volem que la nostra matriu estigui ordenada. Aleshores, passem el segon argument '1', que vol dir que volem tallar la nostra matriu al llarg de l'eix = 1. Finalment, passem la matriu que s'ha d'ordenar en aquest cas. Al final del codi, simplement imprimim les dues matrius, la matriu original i la matriu resultant, que es mostren mitjançant la instrucció print().



importar numpy com per exemple.

arr = per exemple. matriu ( [ [ 8 , 1 , 7 ] , [ 4 , 3 , 9 ] , [ 5 , 2 , 6 ] ] )

matriu = per exemple. aplicar_al llarg de l'eix ( ordenat , 1 , arr )

imprimir ( 'la matriu original és:' , arr )

imprimir ( 'la matriu ordenada és:' , matriu )





Com podem veure a la sortida següent, vam mostrar ambdues matrius. En el primer, els valors es col·loquen aleatòriament a cada fila de la matriu. Però a la segona, podem veure la matriu ordenada. Com que vam passar l'eix '1', no ha ordenat la matriu completa, però l'ha ordenat per fila tal com es mostra. Cada fila està ordenada. La primera fila de la matriu donada és '8, 1 i 7'. Mentre es troba a la matriu ordenada, la primera fila és '1, 7 i 8'. Igual que això, cada fila està ordenada.



Mètode 2: aplicar sobre l'eix

numpy. aplicar_sobre_eixos ( func , a , eixos )

A la sintaxi donada, tenim la funció numpy.apply_over_axis que s'encarrega d'aplicar la funció a l'eix donat. Dins de la funció apply_over_axis, passem tres arguments. La primera és la funció que s'ha de realitzar. El segon és la matriu en si. I l'últim és l'eix sobre el qual volem aplicar la funció.

Exemple 2:

En el següent cas, realitzem el segon mètode de la funció 'aplicar' en què calculem la suma de la matriu tridimensional. Una cosa a recordar és que la suma de dues matrius no vol dir que calculem tota la matriu. En algunes de les matrius, calculem la suma per files, la qual cosa significa que sumem les files i en traiem l'element únic.

Avancem al nostre codi. Primer importem el paquet NumPy i després creem una variable que conté la matriu tridimensional. En el nostre cas, la variable és 'arr'. A la línia següent, creem una altra variable que conté la matriu resultant de la funció apply_over_axis. Assignem la funció apply_over_Axis a la variable 'arr' amb tres arguments. El primer argument és la funció integrada de NumPy per calcular la suma que és np.sum. El segon paràmetre és la matriu en si. El tercer argument és l'eix sobre el qual s'aplica la funció, en aquest cas tenim l'eix “[0, 2]”. Al final del codi, executem ambdues matrius utilitzant la instrucció print().

importar numpy com per exemple.

arr = per exemple. matriu ( [ [ [ 6 , 12 , 2 ] , [ 2 , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

[ [ 12 , 7 , 14 ] , [ 2 , 17 , 18 ] , [ 0 , 21 , 8 ] ] ] )

matriu = per exemple. aplicar_sobre_eixos ( per exemple. suma , arr , [ 0 , 2 ] )

imprimir ( 'la matriu original és:' , arr )

imprimir ( 'la suma de la matriu és:' , matriu )

Com es mostra a la figura següent, hem calculat algunes de les nostres matrius tridimensionals mitjançant la funció apply_over_axis. La primera matriu que es mostra és la matriu original amb la forma de '2, 3, 3' i la segona és la suma de les files. La suma de la primera fila és '53', la segona és '54' i l'última és '57'.

Conclusió

En aquest article, hem estudiat com s'utilitza la funció d'aplicació a NumPy i com podem aplicar les diferents funcions en matrius al llarg o sobre l'eix. És fàcil aplicar qualsevol funció a la fila o columna desitjada tallant-les mitjançant els mètodes 'aplica' proporcionats per NumPy. És una manera eficient quan no l'hem d'aplicar a tota la matriu. Esperem que aquesta publicació us sigui útil per aprendre a utilitzar el mètode d'aplicació.