Python Εκμάθηση NumPy για αρχάριους
⚡ Έξυπνη Σύνοψη
Το NumPy είναι το θεμελιώδες Python βιβλιοθήκη για αριθμητικούς υπολογισμούς, τροφοδοσία πινάκων, πινάκων, γραμμικής άλγεβρας και τυχαίας δειγματοληψίας. Αυτό το σεμινάριο NumPy περιγράφει την εγκατάσταση, τη δημιουργία πινάκων, την αναδιαμόρφωσηping, τεμαχισμός, στατιστικά στοιχεία και μαθηματικά πινάκων με το runnable Python παραδείγματα.

Σε τι είναι το NumPy Python?
μουδιασμένος είναι ανοιχτού κώδικα Python βιβλιοθήκη για μαθηματικό, επιστημονικό, μηχανικό και προγραμματισμό επιστήμης δεδομένων. Είναι μια πολύ χρήσιμη βιβλιοθήκη για μαθηματικές και στατιστικές λειτουργίες σε PythonΛειτουργεί τέλεια με πολυδιάστατους πίνακες και πολλαπλασιασμό πινάκων και ενσωματώνεται εύκολα με C/C++ και Fortran.
Για οποιοδήποτε επιστημονικό έργο, το NumPy είναι το εργαλείο που χρειάζεστε για να μάθετε. Είναι κατασκευασμένο για τον πίνακα N-διαστάσεων, τη γραμμική άλγεβρα, την παραγωγή τυχαίων αριθμών, τους μετασχηματισμούς Fourier και πολλά άλλα.
Το NumPy δίνει Python υποστήριξη πρώτης κατηγορίας για πολυδιάστατους πίνακες και πίνακες, καθώς και ένα μεγάλο σύνολο μαθηματικών πράξεων που επιδρούν σε αυτούς. Σε αυτόν τον οδηγό, θα εξετάσουμε τις βασικές συναρτήσεις που πρέπει να γνωρίζετε πριν προχωρήσουμε στο σεμινάριο για το «TensorFlow".
Γιατί να χρησιμοποιήσετε το NumPy;
Το NumPy είναι αποδοτικό στη μνήμη, επομένως μπορεί να χειριστεί μεγάλους όγκους αριθμητικών δεδομένων πιο εύκολα από το απλό Python λίστες. Είναι επίσης πολύ βολικό για πολλαπλασιασμό πινάκων και αναδιαμόρφωσηping, και είναι γρήγορο επειδή η βαριά δουλειά ανατίθεται σε μεταγλωττισμένες ρουτίνες C. Στην πραγματικότητα, βιβλιοθήκες όπως οι TensorFlow, PyTorΤα ch και Scikit-learn βασίζονται σε πίνακες NumPy για μαθηματικά πινάκων στο back end τους, γεγονός που καθιστά το NumPy το σιωπηλό εργαλείο κάτω από τις περισσότερες σύγχρονες ροές εργασίας επιστήμης δεδομένων και τεχνητής νοημοσύνης.
Πώς να εγκαταστήσετε το NumPy
Για να εγκαταστήσετε τη βιβλιοθήκη NumPy, ανατρέξτε στο εκπαιδευτικό μας υλικό. Πώς να εγκαταστήσετε το TensorFlow. Το NumPy εγκαθίσταται από προεπιλογή με το Anaconda.
Στη σπάνια περίπτωση που το NumPy δεν είναι εγκατεστημένο, χρησιμοποιήστε οποιαδήποτε από τις παρακάτω επιλογές.
Μπορείτε να εγκαταστήσετε το NumPy χρησιμοποιώντας το Anaconda:
conda install -c anaconda numpy
- In Jupyter Notebook:
import sys
!conda install --yes --prefix {sys.prefix} numpy
Οι χρήστες του Pip μπορούν να εγκαταστήσουν ή να αναβαθμίσουν το Pip με μία μόνο εντολή:
pip install --upgrade numpy
Εισαγωγή NumPy και Έλεγχος έκδοσης
Η εντολή για εισαγωγή numpy είναι:
import numpy as np
Η παραπάνω γραμμή μετονομάζει τον χώρο ονομάτων NumPy σε npΑυτή η συντόμευση σάς επιτρέπει να προσθέσετε ως πρόθεμα στις συναρτήσεις, τις μεθόδους και τα χαρακτηριστικά NumPy np. αντί για typing numpy., και είναι η τυπική σύμβαση που θα βρείτε σε όλο το οικοσύστημα NumPy.
Για να ελέγξετε την εγκατεστημένη έκδοση του NumPy, χρησιμοποιήστε την παρακάτω εντολή:
print(np.__version__)
Παραγωγή:
2.1.3
Το NumPy 2.0 κυκλοφόρησε τον Ιούνιο του 2024 και είναι η τρέχουσα σταθερή κύρια σειρά. Εάν το έργο σας εξακολουθεί να εξαρτάται από το API 1.x, καρφιτσώστε το σε numpy<2 στο αρχείο απαιτήσεών σας επειδή ορισμένα παλαιότερα ψευδώνυμα όπως np.float αφαιρέθηκαν στην έκδοση 2.0.
Τι είναι ένα Python NumPy Array;
Οι πίνακες NumPy μοιάζουν λίγο με Python λίστες με την πρώτη ματιά, αλλά συμπεριφέρονται πολύ διαφορετικά. Για τους αναγνώστες που είναι νέοι στο θέμα, ας διευκρινίσουμε τι είναι ένα ndarray και γιατί είναι σημαντικό.
Όπως υποδηλώνει το όνομα, ένας πίνακας NumPy είναι η κεντρική δομή δεδομένων της βιβλιοθήκης NumPy. Το ίδιο το όνομα είναι η συντομογραφία του «Numeric» (Αριθμητικό) Python» ή «Αριθμητικό Python”, και το ndarray είναι ένα ομοιογενές μπλοκ μνήμης σταθερού μεγέθους με γνωστό σχήμα και τύπο δεδομένων.
Δημιουργία πίνακα NumPy
Ο απλούστερος τρόπος για να δημιουργήσετε έναν πίνακα στο NumPy είναι να ξεκινήσετε από ένα Python Λιστα.
myPythonList = [1,9,8,3]
Μετατρέψτε το Python λίστα σε έναν πίνακα NumPy χρησιμοποιώντας np.array.
numpy_array_from_list = np.array(myPythonList)
Εμφανίστε τα περιεχόμενα του πίνακα.
numpy_array_from_list
Παραγωγή:
array([1, 9, 8, 3])
Στην πράξη, δεν χρειάζεται να δηλώσετε α Python λίστα πρώτα. Τα δύο βήματα μπορούν να συνδυαστούν.
a = np.array([1,9,8,3])
ΣΗΜΕΊΩΣΗ: Η τεκμηρίωση του NumPy αναφέρει επίσης np.ndarray, Αλλά np.array είναι η συνιστώμενη εργοστασιακή λειτουργία για καθημερινή χρήση.
Μπορείτε επίσης να δημιουργήσετε έναν πίνακα NumPy από μια πλειάδα με τον ίδιο τρόπο.
Μαθηματικός Operaσε έναν πίνακα
Μπορείτε να εκτελέσετε μαθηματικές πράξεις όπως πρόσθεση, αφαίρεσηtracδιαίρεση και πολλαπλασιασμό σε έναν πίνακα. Η σύνταξη είναι το όνομα του πίνακα, ακολουθούμενο από τον τελεστή (+, -, *, /), ακολουθούμενο από τον τελεστή. Αυτές οι λειτουργίες είναι διανυσματικοποιημένες, πράγμα που σημαίνει ότι το NumPy τις εφαρμόζει σε κάθε στοιχείο χωρίς σαφή Python βρόχος.
Παράδειγμα:
numpy_array_from_list + 10
Παραγωγή:
array([11, 19, 18, 13])
Αυτή η λειτουργία προσθέτει 10 σε κάθε στοιχείο του πίνακα NumPy.
Σχήμα πίνακα
Μπορείτε να ελέγξετε το σχήμα ενός πίνακα με το shape χαρακτηριστικό, προσβάσιμο προσθέτοντάς το στο όνομα του πίνακα. Με τον ίδιο τρόπο, μπορείτε να ελέγξετε τον τύπο με dtype.
import numpy as np a = np.array([1,2,3]) print(a.shape) print(a.dtype) (3,) int64
Ένας ακέραιος αριθμός είναι μια τιμή χωρίς υποδιαστολή. Εάν δημιουργήσετε έναν πίνακα με δεκαδικά ψηφία, ο τύπος d αλλάζει σε float.
#### Different type b = np.array([1.1,2.0,3.2]) print(b.dtype) float64
Πίνακας 2 διαστάσεων
Μπορείτε να προσθέσετε μια διάσταση με κόμμα μέσα στις παρενθέσεις.
Σημειώστε ότι οι εσωτερικές πλειάδες πρέπει να βρίσκονται μέσα στις εξωτερικές αγκύλες [].
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
Πίνακας 3 διαστάσεων
Με τον ίδιο τρόπο μπορούν να κατασκευαστούν και μεγαλύτερες διαστάσεις.
### 3 dimension d = np.array([ [[1, 2,3], [4, 5, 6]], [[7, 8,9], [10, 11, 12]] ]) print(d.shape) (2, 2, 3)
| Σκοπός | Code |
|---|---|
| Δημιουργία πίνακα | πίνακας ([1,2,3]) |
| εκτυπώστε το σχήμα | πίνακας([.]).σχήμα |
Τι είναι το numpy.zeros();
numpy.zeros() or np.zeros είναι ένα Python συνάρτηση που χρησιμοποιείται για τη δημιουργία ενός πίνακα γεμάτου με μηδενικά. numpy.zeros() είναι χρήσιμο όταν χρειάζεται να αρχικοποιήσετε βάρη κατά την πρώτη επανάληψη στο TensorFlow ή να ρυθμίσετε buffers με placeholder για άλλες στατιστικές εργασίες.
Συντακτική συνάρτηση numpy.zeros().
numpy.zeros(shape, dtype=float, order='C')
Python numpy.zeros() Παράμετροι
Εδώ,
- Shape: σχήμα του μηδενικού πίνακα NumPy.
- Τύπος: τύπος δεδομένων των στοιχείων. Είναι προαιρετικό και η προεπιλεγμένη τιμή είναι
float64. - Order: η προεπιλογή είναι
C, η οποία είναι η διάταξη γραμμών-μείζονος γραμμής που χρησιμοποιείται απόnumpy.zeros()in Python.
Python numpy.zeros() Παράδειγμα
import numpy as np np.zeros((2,2))
Παραγωγή:
array([[0., 0.], [0., 0.]])
Παράδειγμα numpy zero με Datatype
import numpy as np np.zeros((2,2), dtype=np.int16)
Παραγωγή:
array([[0, 0], [0, 0]], dtype=int16)
Τι είναι το numpy.ones();
Συνάρτηση np.ones(). δημιουργεί έναν πίνακα γεμάτο με μονάδες. numpy.ones() in Python είναι χρήσιμο όταν αρχικοποιείτε βάρη κατά την πρώτη επανάληψη στο TensorFlow και για άλλες στατιστικές εργασίες.
Python numpy.ones() Σύνταξη
numpy.ones(shape, dtype=float, order='C')
Python Παράμετροι numpy.ones().
Εδώ,
- Shape: σχήμα των np.ones Python Παράταξη.
- Τύπος: τύπος δεδομένων των στοιχείων. Είναι προαιρετικό και η προεπιλεγμένη τιμή είναι
float64. - Order: η προεπιλογή είναι
C, η οποία είναι η διάταξη με βάση τις κύριες γραμμές.
Python numpy.ones() Δισδιάστατος πίνακας με Παράδειγμα τύπου δεδομένων
import numpy as np np.ones((1,2,3), dtype=np.int16)
Παραγωγή:
array([[[1, 1, 1], [1, 1, 1]]], dtype=int16)
Numpy.reshape() συνάρτηση σε Python
Python NumPy Reshape αλλάζει το σχήμα ενός πίνακα χωρίς να αλλάξει τα δεδομένα του. Μπορεί να χρειαστεί να αναδιαμορφώσετε τα δεδομένα από ευρεία σε μεγάλη μορφή ή να μετακινηθείτε από ένα μονοδιάστατο διάνυσμα σε έναν δισδιάστατο πίνακα πριν τα τροφοδοτήσετε σε ένα μοντέλο. np.reshape Η συνάρτηση χειρίζεται αυτό με μία μόνο κλήση.
Σύνταξη του np.reshape()
numpy.reshape(a, newShape, order='C')
Εδώ,
a: πίνακας που θέλετε να αναδιαμορφώσετε.
newShape: το νέο επιθυμητό σχήμα.
Order: η προεπιλογή είναι C, η διάταξη κατά σειρά.
Παράδειγμα αναμόρφωσης NumPy
import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) e.reshape(3,2)
Παραγωγή:
// Before reshape [[1 2 3] [4 5 6]]
//After Reshape array([[1, 2], [3, 4], [5, 6]])
numpy.flatten() in Python
Python NumPy Flatten επιστρέφει ένα αντίγραφο του πίνακα συμπτυγμένο σε μία διάσταση. Όταν εργάζεστε με νευρωνικά δίκτυα όπως τα convnets, συχνά χρειάζεται να ισοπεδώσετε έναν τανυστή εικόνας πριν τον περάσετε σε ένα πυκνό επίπεδο. np.flatten() Η συνάρτηση χειρίζεται αυτό σε μία μόνο κλήση.
Σύνταξη του np.flatten()
numpy.flatten(order='C')
Εδώ,
Order: η προεπιλογή είναι C, η διάταξη κατά σειρά.
Παράδειγμα NumPy Flatten
e.flatten()
Παραγωγή:
array([1, 2, 3, 4, 5, 6])
Τι είναι το numpy.hstack(). Python?
numpy.hstack είναι ένα Python συνάρτηση που χρησιμοποιείται για την οριζόντια στοίβαξη ακολουθιών πινάκων εισόδου σε έναν μόνο πίνακα. Με hstack(), προσθέτετε δεδομένα κατά μήκος του άξονα της στήλης. Είναι ένας πολύ βολικός βοηθός στο NumPy όταν χρειάζεται να συγχωνεύσετε διανύσματα χαρακτηριστικών το ένα δίπλα στο άλλο.
Ας μελετήσουμε hstack in Python με ένα παράδειγμα.
Παράδειγμα:
## Horizontal Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Horizontal Append:', np.hstack((f, g)))
Παραγωγή:
Horizontal Append: [1 2 3 4 5 6]
Σε τι βρίσκεται η numpy.vstack(). Python?
numpy.vstack είναι ένα Python συνάρτηση που χρησιμοποιείται για την κάθετη στοίβαξη ακολουθιών πινάκων εισόδου σε έναν μόνο πίνακα. Με vstack(), προσθέτετε δεδομένα κατά μήκος του άξονα της γραμμής, κάτι που είναι χρήσιμο όταν θέλετε να συνδυάσετε παρτίδες δειγμάτων.
Ας το μελετήσουμε με ένα παράδειγμα.
Παράδειγμα:
## Vertical Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Vertical Append:', np.vstack((f, g)))
Παραγωγή:
Vertical Append: [[1 2 3] [4 5 6]]
Αφού μελέτησα το NumPy vstack και hstack, ας δούμε ένα παράδειγμα που παράγει τυχαίους αριθμούς στο NumPy.
Δημιουργία Τυχαίας Numbers χρησιμοποιώντας το NumPy
Για να δημιουργήσετε τυχαίους αριθμούς από μια Γκαουσιανή κατανομή, χρησιμοποιήστε:
numpy.random.normal(loc, scale, size)
Εδώ,
- Θέση: ο μέσος όρος. Το κέντρο της κατανομής.
- Κλίμακα: η τυπική απόκλιση.
- Μέγεθος: αριθμός επιστρεφόμενων δειγμάτων.
Παράδειγμα:
## Generate random numbers from a normal distribution normal_array = np.random.normal(5, 0.5, 10) print(normal_array) [5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Αν απεικονιστεί γραφικά, η κατανομή είναι παρόμοια με το ακόλουθο διάγραμμα.

Σημειώστε ότι ο νεότερος κώδικας χρησιμοποιεί όλο και περισσότερο το σύγχρονο API γεννήτριας, np.random.default_rng(), η οποία είναι η συνιστώμενη αντικατάσταση για το παλαιότερο np.random.normal κλήσεις στο NumPy 2.x.
Λειτουργία NumPy Asarray
The asarray() Η συνάρτηση μετατρέπει μια είσοδο σε έναν πίνακα. Η είσοδος μπορεί να είναι μια λίστα, μια πλειάδα, μια ndarray ή παρόμοια ακολουθία.
Σύνταξη:
numpy.asarray(data, dtype=None, order=None)
Εδώ,
ημερομηνία: δεδομένα που θέλετε να μετατρέψετε σε πίνακα.
dtype: προαιρετικό. Εάν δεν καθοριστεί, ο τύπος δεδομένων συνάγεται από τα δεδομένα εισόδου.
Order: η προεπιλογή είναι C, η διάταξη γραμμών-μείζονος. Η άλλη επιλογή είναι F (Fortraστήλη-μείζονα σε στυλ n).
Παράδειγμα:
Θεωρήστε τον ακόλουθο δισδιάστατο πίνακα με τέσσερις γραμμές και τέσσερις στήλες, γεμάτους με 1.
import numpy as np A = np.matrix(np.ones((4,4)))
Αν προσπαθήσετε να αλλάξετε μια τιμή στον πίνακα μέσω np.array, το πρωτότυπο δεν έχει τροποποιηθεί. Ο λόγος είναι ότι np.array δημιουργεί ένα αντίγραφο του πίνακα.
np.array(A)[2]=2 print(A) [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
Ο πίνακας παραμένει αμετάβλητος. Χρησιμοποιήστε asarray όταν θέλετε να τροποποιήσετε τον αρχικό πίνακα στη θέση του. Ας δούμε τι συμβαίνει όταν ορίσετε την τρίτη γραμμή στην τιμή 2.
np.asarray(A)[2]=2 print(A)
Code Επεξήγηση:
np.asarray(A) μετατρέπει τον πίνακα A σε μια προβολή πίνακα.
[2] επιλέγει την τρίτη γραμμή.
Παραγωγή:
[[1. 1. 1. 1.] [1. 1. 1. 1.] [2. 2. 2. 2.] # new value [1. 1. 1. 1.]]
Τι είναι το numpy.arange();
numpy.arange() είναι μια ενσωματωμένη συνάρτηση NumPy που επιστρέφει ένα ndarray που περιέχει τιμές σε ίση απόσταση εντός ενός καθορισμένου διαστήματος. Για παράδειγμα, για να δημιουργήσετε τιμές από 1 έως 10, μπορείτε να καλέσετε np.arange() in Python.
Σύνταξη:
numpy.arange(start, stop, step, dtype)
Python Παράμετροι NumPy arange:
- Αρχική: έναρξη του διαστήματος για
np.arangein Python. - στάση: τέλος του διαστήματος.
- Βήμα: απόσταση μεταξύ τιμών. Το προεπιλεγμένο βήμα είναι 1.
- Τύπος: τύπος του πίνακα εξόδου για το NumPy
arange.
Παράδειγμα:
import numpy as np np.arange(1, 11)
Παραγωγή:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Παράδειγμα:
Για να αλλάξετε το βήμα σε αυτό το NumPy arange Για παράδειγμα, προσθέστε έναν τρίτο αριθμό στις παρενθέσεις. Αλλάζει το μέγεθος του βήματος.
import numpy as np np.arange(1, 14, 4)
Παραγωγή:
array([ 1, 5, 9, 13])
Λειτουργία NumPy Linspace
linspace Επιστρέφει ομοιόμορφα κατανεμημένα δείγματα μεταξύ δύο τελικών σημείων.
Σύνταξη:
numpy.linspace(start, stop, num, endpoint)
Εδώ,
- Αρχική: αρχική τιμή της ακολουθίας.
- στάση: τελική τιμή της ακολουθίας.
- Σε: αριθμός δειγμάτων προς δημιουργία. Η προεπιλογή είναι 50.
- Τελικό σημείο: αν
True(Προεπιλογή)stopείναι η τελευταία τιμή. ΑνFalse,stopδεν περιλαμβάνεται.
Παράδειγμα:
Για παράδειγμα, μπορεί να χρησιμοποιηθεί για τη δημιουργία 10 ισοκατανεμημένων τιμών από το 1 έως το 5.
import numpy as np np.linspace(1.0, 5.0, num=10)
Παραγωγή:
array([1. , 1.44444444, 1.88888889, 2.33333333, 2.77777778, 3.22222222, 3.66666667, 4.11111111, 4.55555556, 5. ])
Αν δεν θέλετε να συμπεριλάβετε το τελευταίο ψηφίο στο διάστημα, ορίστε endpoint προς την False.
np.linspace(1.0, 5.0, num=5, endpoint=False)
Παραγωγή:
array([1. , 1.8, 2.6, 3.4, 4.2])
Λειτουργία LogSpace NumPy σε Python
logspace Επιστρέφει αριθμούς σε ίση απόσταση σε λογαριθμική κλίμακα. logspace μοιράζεται τις ίδιες παραμέτρους με np.linspace.
Σύνταξη:
numpy.logspace(start, stop, num, endpoint)
Παράδειγμα:
np.logspace(3.0, 4.0, num=4)
Παραγωγή:
array([ 1000. , 2154.43469003, 4641.58883361, 10000. ])
Τέλος, αν θέλετε να ελέγξετε το μέγεθος μνήμης ενός μεμονωμένου στοιχείου σε έναν πίνακα, μπορείτε να χρησιμοποιήσετε itemsize.
x = np.array([1,2,3], dtype=np.complex128) x.itemsize
Παραγωγή:
16
Κάθε στοιχείο παίρνει 16 byte.
Ευρετηρίαση και κοπή σε φέτες Python
Η τεμαχισμός δεδομένων είναι απλή με το NumPy. Θα τεμαχίσουμε τον πίνακα e. σε Python, χρησιμοποιείτε αγκύλες για να επιστρέψετε γραμμές ή στήλες.
Παράδειγμα:
## Slice import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) [[1 2 3] [4 5 6]]
Να θυμάστε ότι στο NumPy ο πρώτος δείκτης πίνακα ξεκινά από το 0.
## First row print('First row:', e[0]) ## Second row print('Second row:', e[1])
Παραγωγή:
First row: [1 2 3] Second row: [4 5 6]
In Python, όπως και σε πολλές άλλες γλώσσες,
- Η τιμή πριν από το κόμμα αντιπροσωπεύει τις γραμμές.
- Η τιμή μετά το κόμμα αντιπροσωπεύει τις στήλες.
- Αν θέλετε να επιλέξετε μια στήλη, προσθέστε
:πριν από τον δείκτη στήλης. :σημαίνει ότι θέλετε όλες τις γραμμές από την επιλεγμένη στήλη.
print('Second column:', e[:,1])
Second column: [2 5]
Για να επιστρέψετε τις δύο πρώτες τιμές της δεύτερης γραμμής, χρησιμοποιήστε : για να επιλέξετε όλες τις στήλες έως το δεύτερο ευρετήριο.
## Second Row, two values print(e[1, :2]) [4 5]
Στατιστικές συναρτήσεις σε Python
Το NumPy παρέχει ένα χρήσιμο σύνολο στατιστικών συναρτήσεων για την εύρεση του ελάχιστου, του μέγιστου, του εκατοστημορίου, της τυπικής απόκλισης, της διακύμανσης και άλλων από έναν δεδομένο πίνακα. Οι πιο συνηθισμένες παρατίθενται παρακάτω.
Το NumPy συνοδεύεται από ισχυρούς στατιστικούς βοηθούς, οι οποίοι συνοψίζονται στον πίνακα.
| Λειτουργία | Νούμπι |
|---|---|
| Ελάχ. | np.min() |
| Μέγ. | np.max() |
| Μέσο | np.mean() |
| Διάμεσος | np.median() |
| Τυπική απόκλιση | np.std() |
Θεωρήστε τον ακόλουθο πίνακα:
Παράδειγμα:
import numpy as np normal_array = np.random.normal(5, 0.5, 10) print(normal_array)
Παραγωγή:
[5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Παράδειγμα στατιστικών συναρτήσεων NumPy
### Min print(np.min(normal_array)) ### Max print(np.max(normal_array)) ### Mean print(np.mean(normal_array)) ### Median print(np.median(normal_array)) ### Sd print(np.std(normal_array))
Παραγωγή:
4.467042435266913 5.612113171990201 4.934841002270593 4.846995625786663 0.3875019367395316
Τι είναι το προϊόν numpy dot;
numpy.dot είναι μια ισχυρή συνάρτηση για τον υπολογισμό πινάκων. Για παράδειγμα, μπορείτε να υπολογίσετε το ασυνεχές γινόμενο με np.dot. numpy.dot επιστρέφει το τελικό γινόμενο του a και b, και χειρίζεται πίνακες τόσο 1D όσο και 2D. Για εισόδους 2D εκτελεί πολλαπλασιασμό πινάκων.
Σύνταξη:
numpy.dot(x, y, out=None)
Παράμετροι
Εδώ,
x, y: πίνακες εισόδου. x και y θα πρέπει και τα δύο να είναι 1D ή 2D για np.dot() να λειτουργεί ως πολλαπλασιασμός με τελείες ή πίνακα.
έξω: προαιρετικό όρισμα εξόδου που χρησιμοποιείται για την καταγραφή του αποτελέσματος. Διαφορετικά, επιστρέφεται ένα ndarray.
Επιστροφές
η λειτουργία numpy.dot() επιστρέφει το τελικό γινόμενο δύο πινάκων x και yΕπιστρέφει μια βαθμωτή τιμή όταν και οι δύο είναι 1D, διαφορετικά επιστρέφει έναν πίνακα. Εάν out δίνεται, επιστρέφεται αυτός ο πίνακας.
Αυξήσεις
Το γινόμενο των κουκκίδων στο Python σηκώνει α ValueError αν η τελευταία διάσταση του x δεν ταιριάζει με την προτελευταία διάσταση του y.
Παράδειγμα:
## Linear algebra ### Dot product: product of two arrays f = np.array([1,2]) g = np.array([4,5]) ### 1*4+2*5 np.dot(f, g)
Παραγωγή:
14
Πολλαπλασιασμός μήτρας σε Python
Το NumPy matmul() Η συνάρτηση επιστρέφει το γινόμενο πίνακα δύο πινάκων. Δείτε πώς λειτουργεί.
1) Για δισδιάστατους πίνακες, επιστρέφει το κανονικό γινόμενο πίνακα.
2) Για διαστάσεις μεγαλύτερες από 2, το γινόμενο αντιμετωπίζεται ως στοίβα από πίνακες.
3) Ένας μονοδιάστατος πίνακας προάγεται πρώτα σε πίνακα και στη συνέχεια υπολογίζεται το γινόμενο.
Το ένθεμα @ χειριστής, διαθέσιμος από Python 3.5, είναι η συντομογραφία του matmul και χρησιμοποιείται ευρέως στον σύγχρονο κώδικα.
Σύνταξη:
numpy.matmul(x, y, out=None)
Εδώ,
x, y: πίνακες εισόδου. Δεν επιτρέπονται βαθμωτοί αριθμοί.
έξω: προαιρετική παράμετρος. Συνήθως η έξοδος αποθηκεύεται σε ένα ndarray.
Παράδειγμα:
Με τον ίδιο τρόπο, μπορείτε να υπολογίσετε τον πολλαπλασιασμό πινάκων με np.matmul.
### Matmul: matrix product of two arrays h = [[1,2],[3,4]] i = [[5,6],[7,8]] ### 1*5+2*7 = 19 np.matmul(h, i)
Παραγωγή:
array([[19, 22], [43, 50]])
καθοριστικός
Αν χρειάζεται να υπολογίσετε την ορίζουσα ενός πίνακα, χρησιμοποιήστε np.linalg.det()Το NumPy φροντίζει για τις διαστάσεις για εσάς.
Παράδειγμα:
## Determinant 2*2 matrix ### 5*8-7*6 np.linalg.det(i)
Παραγωγή:
-2.000000000000005
Επεξήγηση του NumPy Broadcasting
Η εκπομπή είναι ο κανόνας που επιτρέπει στο NumPy να εκτελεί αριθμητικές πράξεις σε πίνακες διαφορετικών σχημάτων χωρίς να αντιγράφει δεδομένα. Όταν προσθέτετε ένα βαθμωτό σε ένα μονοδιάστατο διάνυσμα ή ένα μονοδιάστατο διάνυσμα σε έναν δισδιάστατο πίνακα, το NumPy τεντώνει τον μικρότερο τελεστή κατά μήκος των αξόνων που λείπουν, έτσι ώστε τα σχήματα να ευθυγραμμίζονται. Αυτό αποφεύγει την σαφή Python βρόχους και είναι ένας από τους κύριους λόγους για τους οποίους ο κώδικας NumPy είναι γρήγορος και συνοπτικός.
Δύο σχήματα είναι συμβατά για μετάδοση όταν, συγκρινόμενα από δεξιά προς τα αριστερά, κάθε ζεύγος διαστάσεων είναι είτε ίσο είτε η μία από αυτές ισούται με 1. Για παράδειγμα, ένας πίνακας σχήματος (3, 4) μεταδίδεται σε μια σειρά από σχήματα (4,) ή μια στήλη σχήματος (3, 1)Η ίδια λογική τροφοδοτεί την ομαλοποίηση στη μηχανική μάθηση, όπου υποδιαιρείτεtracμέσο διάνυσμα ανά χαρακτηριστικό ta από μια παρτίδα δειγμάτων σε μία μόνο γραμμή. Η εκπομπή είναι επίσης το εννοιολογικό μοντέλο που χρησιμοποιείται από βιβλιοθήκες τενσόρων όπως η PyTorch, TensorFlow και JAX, επομένως οι κανόνες που μαθαίνετε εδώ μεταφέρονται απευθείας στον κώδικα της GPU.
Πώς το NumPy ενισχύει την Τεχνητή Νοημοσύνη και τη Μηχανική Μάθηση
Το NumPy βρίσκεται κάτω από σχεδόν κάθε σύγχρονο Python Στοίβα AI. PyTorΟι τανσόροι ch, οι τανσόροι TensorFlow eager και οι πίνακες JAX εκθέτουν την ίδια μετάδοση, τεμαχισμό και αναδιαμόρφωσηping API που μάθατε στο NumPy ndarrays. Πολλά εκπαιδευτικά σεμινάρια εξακολουθούν να τροφοδοτούν προεπεξεργασμένους πίνακες NumPy σε βρόχους εκπαίδευσης μοντέλων και τα πλαίσια τους δέχονται με μηδενική μετατροπή.
Τρία συγκεκριμένα μοτίβα δείχνουν πώς συνδέεται το NumPy με την Τεχνητή Νοημοσύνη σήμερα. Πρώτον, οι μηχανικοί δεδομένων διαμορφώνουν τα ακατέργαστα χαρακτηριστικά σε πίνακες NumPy πριν τα παραδώσουν σε αγωγούς scikit-learn ή σε σύνολα δεδομένων Hugging Face. Δεύτερον, οι ερευνητές χρησιμοποιούν το NumPy ως βασική γραμμή CPU και στη συνέχεια το αντικαθιστούν με το CuPy, το οποίο παρέχει ένα σχεδόν πανομοιότυπο API αλλά εκτελείται σε GPU NVIDIA μέσω CUDA. Τρίτον, το JAX βασίζεται στο API NumPy για να προσθέσει αυτόματη διαφοροποίηση και μεταγλώττιση just-in-time, έτσι ώστε ο ίδιος κώδικας που εκτελείται σε φορητό υπολογιστή να μπορεί να εκτελείται σε TPU στο cloud. Το συμπέρασμα είναι ότι οι δεξιότητες πινάκων που αναπτύσσετε με το NumPy μεταφέρονται σε κάθε σημαντικό κιτ εργαλείων βαθιάς μάθησης, γεγονός που καθιστά αυτό το σεμινάριο ένα χρήσιμο βήμα στο δρόμο για την ανάπτυξη της Τεχνητής Νοημοσύνης.
