Λειτουργία εφαρμογής NumPy

Leitourgia Epharmoges Numpy



Η ενσωματωμένη βιβλιοθήκη που προσφέρει η Python, γνωστή ως NumPy, μας επιτρέπει να κατασκευάσουμε τους πολυδιάστατους πίνακες, να τους τροποποιήσουμε και να εκτελέσουμε διάφορους αριθμητικούς υπολογισμούς σε αυτούς. Η λειτουργία Εφαρμογή παρέχεται επίσης από το πακέτο NumPy. Η τυπική περίπτωση χρήσης για τη συνάρτηση εφαρμογής είναι παρόμοια με το σενάριο όπου θέλουμε να κόψουμε σε φέτες έναν πίνακα και να εκτελέσουμε ορισμένες λειτουργίες σε κάθε στοιχείο μιας λίστας, για παράδειγμα, εάν θέλουμε να τετραγωνίσουμε κάθε στοιχείο μιας σειράς. Φυσικά, στην Python, γνωρίζουμε ότι οι βρόχοι for είναι αργοί, επομένως θα θέλαμε να τους αποφύγουμε αν είναι δυνατόν. Η συνάρτηση «εφαρμογή» μπορεί να χρησιμοποιηθεί εάν θέλετε να κάνετε την ίδια λειτουργία σε κάθε γραμμή ή στήλη ενός πλαισίου δεδομένων. Με άλλα λόγια, κάνει αυτό που θέλετε να κάνετε με έναν βρόχο for χωρίς να χρειάζεται να γράψετε έναν βρόχο for.

Υπάρχουν δύο μέθοδοι για να εφαρμόσετε οποιαδήποτε συνάρτηση στον πίνακα ανάλογα με την κατάσταση. Μπορούμε να εφαρμόσουμε τη συνάρτηση «εφαρμογή πάνω από τον άξονα» που είναι χρήσιμη όταν εφαρμόζουμε τη συνάρτηση σε κάθε στοιχείο του πίνακα ένα προς ένα, και είναι χρήσιμη για τους πίνακες n-διάστάσεων. Η δεύτερη μέθοδος είναι «εφαρμογή κατά μήκος του άξονα» που εφαρμόζεται σε μονοδιάστατο πίνακα.

Σύνταξη:

Μέθοδος 1: Εφαρμόστε κατά μήκος του άξονα

μουδιασμένος. εφαρμογή_κατά μήκος_άξονα ( 1d_function , άξονας , αρ , *args , ** τεταρτημόρια )

Στη σύνταξη, έχουμε τη συνάρτηση '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'. Στην επόμενη γραμμή, δημιουργούμε μια μεταβλητή με το όνομα 'array' που είναι υπεύθυνη για τη διατήρηση του αποτελέσματος της συνάρτησης apply_along_Axis.



Σε αυτή τη συνάρτηση, περνάμε τρία ορίσματα. Η πρώτη είναι η συνάρτηση που θέλουμε να εφαρμόσουμε στον πίνακα, στην περίπτωσή μας είναι η ταξινομημένη συνάρτηση επειδή θέλουμε ο πίνακας μας να είναι ταξινομημένος. Στη συνέχεια, περνάμε το δεύτερο όρισμα '1' που σημαίνει ότι θέλουμε να τεμαχίσουμε τον πίνακα μας κατά μήκος του άξονα=1. Τέλος, περνάμε τον πίνακα που πρόκειται να ταξινομηθεί σε αυτήν την περίπτωση. Στο τέλος του κώδικα, απλώς εκτυπώνουμε και τους δύο πίνακες – τον ​​αρχικό πίνακα καθώς και τον πίνακα που προκύπτει – οι οποίοι εμφανίζονται χρησιμοποιώντας την πρόταση print().



εισαγωγή μουδιασμένος όπως και π.χ.

αρ = π.χ. πίνακας ( [ [ 8 , 1 , 7 ] , [ 4 , 3 , 9 ] , [ 5 , δύο , 6 ] ] )

πίνακας = π.χ. εφαρμογή_κατά μήκος_άξονα ( ταξινομημένο , 1 , αρ )

Τυπώνω ( 'ο αρχικός πίνακας είναι:' , αρ )

Τυπώνω ( 'ο ταξινομημένος πίνακας είναι:' , πίνακας )





Όπως μπορούμε να δούμε στην ακόλουθη έξοδο, εμφανίσαμε και τους δύο πίνακες. Στην πρώτη, οι τιμές τοποθετούνται τυχαία σε κάθε σειρά του πίνακα. Αλλά στο δεύτερο, μπορούμε να δούμε τον ταξινομημένο πίνακα. Από τότε που περάσαμε τον άξονα '1', δεν έχει ταξινομήσει ολόκληρο τον πίνακα, αλλά τον ταξινόμησε κατά σειρά όπως εμφανίζεται. Κάθε σειρά είναι ταξινομημένη. Η πρώτη σειρά στον δεδομένο πίνακα είναι '8, 1 και 7'. Ενώ στον ταξινομημένο πίνακα, η πρώτη σειρά είναι '1, 7 και 8'. Όπως και αυτό, κάθε σειρά είναι ταξινομημένη.



Μέθοδος 2: Εφαρμόστε πάνω από τον άξονα

μουδιασμένος. app_over_axes ( func , ένα , τσεκούρια )

Στη δεδομένη σύνταξη, έχουμε τη συνάρτηση numpy.apply_over_axis η οποία είναι υπεύθυνη για την εφαρμογή της συνάρτησης στον συγκεκριμένο άξονα. Μέσα στη συνάρτηση application_over_axis, περνάμε τρία ορίσματα. Το πρώτο είναι η λειτουργία που πρόκειται να εκτελεστεί. Το δεύτερο είναι ο ίδιος ο πίνακας. Και το τελευταίο είναι ο άξονας στον οποίο θέλουμε να εφαρμόσουμε τη συνάρτηση.

Παράδειγμα 2:

Στην επόμενη περίπτωση, εκτελούμε τη δεύτερη μέθοδο της συνάρτησης «εφαρμογή» στην οποία υπολογίζουμε το άθροισμα του τρισδιάστατου πίνακα. Ένα πράγμα που πρέπει να θυμάστε είναι ότι το άθροισμα δύο πινάκων δεν σημαίνει ότι υπολογίζουμε ολόκληρο τον πίνακα. Σε μερικούς από τους πίνακες, υπολογίζουμε το άθροισμα σειρών που σημαίνει ότι προσθέτουμε τις σειρές και βγάζουμε το μεμονωμένο στοιχείο από αυτές.

Ας προχωρήσουμε στον κώδικα μας. Πρώτα εισάγουμε το πακέτο NumPy και μετά δημιουργούμε μια μεταβλητή που κρατά τον τρισδιάστατο πίνακα. Στην περίπτωσή μας, η μεταβλητή είναι 'arr'. Στην επόμενη γραμμή, δημιουργούμε μια άλλη μεταβλητή που κρατά τον πίνακα που προκύπτει από τη συνάρτηση application_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 ] ] ] )

πίνακας = π.χ. app_over_axes ( π.χ. άθροισμα , αρ , [ 0 , δύο ] )

Τυπώνω ( 'ο αρχικός πίνακας είναι:' , αρ )

Τυπώνω ( 'το άθροισμα του πίνακα είναι:' , πίνακας )

Όπως φαίνεται στο παρακάτω σχήμα, υπολογίσαμε μερικούς από τους τρισδιάστατους πίνακες μας χρησιμοποιώντας τη συνάρτηση apply_over_axis. Ο πρώτος πίνακας που εμφανίζεται είναι ο αρχικός πίνακας με το σχήμα '2, 3, 3' και ο δεύτερος είναι το άθροισμα των σειρών. Το άθροισμα της πρώτης σειράς είναι '53', η δεύτερη είναι '54' και η τελευταία είναι '57'.

συμπέρασμα

Σε αυτό το άρθρο, μελετήσαμε πώς χρησιμοποιείται η συνάρτηση εφαρμογής στο NumPy και πώς μπορούμε να εφαρμόσουμε τις διαφορετικές συναρτήσεις σε πίνακες κατά μήκος ή πάνω από τον άξονα. Είναι εύκολο να εφαρμόσετε οποιαδήποτε συνάρτηση στην επιθυμητή γραμμή ή στήλη τεμαχίζοντάς τις χρησιμοποιώντας τις μεθόδους «εφαρμογή» που παρέχονται από το NumPy. Είναι ένας αποτελεσματικός τρόπος όταν δεν χρειάζεται να τον εφαρμόσουμε σε ολόκληρο τον πίνακα. Ελπίζουμε να βρείτε αυτή την ανάρτηση ωφέλιμη για να μάθετε πώς να χρησιμοποιείτε τη μέθοδο εφαρμογής.