Funzione NumPy Apply

Funzione Numpy Apply



La libreria integrata offerta da Python, nota come NumPy, ci consente di costruire gli array multidimensionali, modificarli ed eseguire vari calcoli aritmetici su di essi. La funzione Apply è fornita anche dal pacchetto NumPy. Il tipico caso d'uso per la funzione apply è simile allo scenario in cui vogliamo dividere una matrice ed eseguire alcune operazioni su ciascun elemento di un elenco, ad esempio, se vogliamo squadrare ogni elemento di una riga. Naturalmente, in Python, sappiamo che i cicli for sono lenti, quindi vorremmo evitarli se possibile. La funzione 'applica' può essere utilizzata se si desidera eseguire la stessa operazione su ogni riga o colonna di un frame di dati. In altre parole, fa quello che vuoi fare con un ciclo for senza dover scrivere un ciclo for.

Esistono due metodi per applicare qualsiasi funzione all'array a seconda della condizione. Possiamo applicare la funzione 'applica sull'asse' che è utile quando applichiamo la funzione su ogni elemento dell'array uno per uno, ed è utile per gli array n-dimensionali. Il secondo metodo è 'applica lungo l'asse' che si applica a una matrice unidimensionale.

Sintassi:

Metodo 1: applicare lungo l'asse

intontito. applicare_lungo_asse ( 1d_funzione , asse , arr , *arg , **quarg )

Nella sintassi, abbiamo la funzione 'numpy.apply' a cui passiamo cinque argomenti. Il primo argomento che è '1d_function' opera sull'array unidimensionale, che è richiesto. Mentre il secondo argomento, 'l'asse', è quello su quale asse vuoi dividere l'array e applicare quella funzione. Il terzo parametro è 'arr' che è l'array dato a cui vogliamo applicare la funzione. Mentre '*args' e '*kwargs' sono gli argomenti aggiuntivi che non è necessario aggiungere.







Esempio 1:

Andando verso una migliore comprensione dei metodi di 'applicazione', eseguiamo un esempio per verificare il funzionamento dei metodi di applicazione. In questo caso, eseguiamo la funzione 'apply_along_Axis'. Procediamo con il nostro primo passo. Per prima cosa includiamo le nostre librerie NumPy come np. E quindi, creiamo un array chiamato 'arr' che contiene una matrice 3 × 3 con valori interi che sono '8, 1, 7, 4, 3, 9, 5, 2 e 6'. Nella riga successiva, creiamo una variabile denominata 'array' che è responsabile della conservazione del risultato della funzione apply_along_Axis.



A quella funzione, passiamo tre argomenti. La prima è la funzione che vogliamo applicare all'array, nel nostro caso è la funzione ordinata perché vogliamo che il nostro array sia ordinato. Quindi, passiamo il secondo argomento '1', il che significa che vogliamo dividere il nostro array lungo l'asse=1. Infine, passiamo l'array che deve essere ordinato in questo caso. Alla fine del codice, stampiamo semplicemente entrambi gli array – l'array originale e l'array risultante – che vengono visualizzati usando l'istruzione print().



importare intontito come per esempio.

arr = per esempio. Vettore ( [ [ 8 , 1 , 7 ] , [ 4 , 3 , 9 ] , [ 5 , Due , 6 ] ] )

Vettore = per esempio. applicare_lungo_asse ( smistato , 1 , arr )

Stampa ( 'l'array originale è:' , arr )

Stampa ( 'l'array ordinato è:' , Vettore )





Come possiamo vedere nell'output seguente, abbiamo visualizzato entrambi gli array. Nella prima, i valori vengono inseriti casualmente in ogni riga della matrice. Ma nel secondo, possiamo vedere l'array ordinato. Dal momento che abbiamo superato l'asse '1', non ha ordinato l'array completo ma lo ha ordinato per riga come visualizzato. Ogni riga è ordinata. La prima riga della matrice data è '8, 1 e 7'. Mentre nell'array ordinato, la prima riga è '1, 7 e 8'. Come questa, ogni riga è ordinata.



Metodo 2: applicare sopra l'asse

intontito. applicare_su_assi ( funz , un , assi )

Nella sintassi data, abbiamo la funzione numpy.apply_over_axis che è responsabile dell'applicazione della funzione sull'asse dato. All'interno della funzione apply_over_axis, passiamo tre argomenti. La prima è la funzione che deve essere svolta. Il secondo è l'array stesso. E l'ultimo è l'asse su cui vogliamo applicare la funzione.

Esempio 2:

Nel seguente esempio, eseguiamo il secondo metodo della funzione 'applica' in cui calcoliamo la somma dell'array tridimensionale. Una cosa da ricordare è che la somma di due array non significa che calcoliamo l'intero array. In alcuni degli array, calcoliamo la somma per riga, il che significa che aggiungiamo le righe e ne ricaviamo il singolo elemento.

Andiamo avanti al nostro codice. Prima importiamo il pacchetto NumPy e quindi creiamo una variabile che contiene l'array tridimensionale. Nel nostro caso, la variabile è “arr”. Nella riga successiva, creiamo un'altra variabile che contiene l'array risultante della funzione apply_over_axis. Assegniamo la funzione apply_over_Axis alla variabile “arr” con tre argomenti. Il primo argomento è la funzione incorporata di NumPy per calcolare la somma che è np.sum. Il secondo parametro è l'array stesso. Il terzo argomento è l'asse su cui viene applicata la funzione, in questo caso abbiamo l'asse “[0, 2]”. Alla fine del codice, eseguiamo entrambi gli array usando l'istruzione print().

importare intontito come per esempio.

arr = per esempio. Vettore ( [ [ [ 6 , 12 , Due ] , [ Due , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

[ [ 12 , 7 , 14 ] , [ Due , 17 , 18 ] , [ 0 , ventuno , 8 ] ] ] )

Vettore = per esempio. applicare_su_assi ( per esempio. somma , arr , [ 0 , Due ] )

Stampa ( 'l'array originale è:' , arr )

Stampa ( 'la somma dell'array è:' , Vettore )

Come mostrato nella figura seguente, abbiamo calcolato alcuni dei nostri array tridimensionali utilizzando la funzione apply_over_axis. Il primo array visualizzato è l'array originale con la forma di '2, 3, 3' e il secondo è la somma delle righe. La somma della prima riga è '53', la seconda è '54' e l'ultima è '57'.

Conclusione

In questo articolo, abbiamo studiato come viene utilizzata la funzione apply in NumPy e come possiamo applicare le diverse funzioni su array lungo o sopra l'asse. È facile applicare qualsiasi funzione sulla riga o colonna desiderata tagliandole utilizzando i metodi di 'applicazione' forniti da NumPy. È un modo efficiente quando non dobbiamo applicarlo all'intero array. Ci auguriamo che tu possa trovare utile questo post per imparare a utilizzare il metodo di applicazione.