Τα μαθηματικά ασχολούνται με έναν τεράστιο αριθμό εννοιών που είναι πολύ σημαντικές αλλά ταυτόχρονα περίπλοκες και χρονοβόρες. Ωστόσο, παρέχει την πλήρη βιβλιοθήκη SciPy που επιλύει αυτό το ζήτημα για εμάς. Σε αυτό το σεμινάριο SciPy, θα μάθετε πώς να χρησιμοποιείτε αυτήν τη βιβλιοθήκη μαζί με μερικές λειτουργίες και τα παραδείγματα τους.
Πριν προχωρήσετε, ρίξτε μια ματιά σε όλα τα θέματα που συζητούνται σε αυτό το άρθρο:
- Τι είναι το SciPy;
- NumPy εναντίον SciPy
- Πακέτα σε SciPy
- Βασικές λειτουργίες
- Ειδικές λειτουργίες
- Λειτουργίες ενοποίησης
- Λειτουργίες βελτιστοποίησης
- Λειτουργίες μετασχηματισμού Fourier
- Λειτουργίες επεξεργασίας σήματος
- Γραμμική άλγεβρα
- Αραιά ιδιοτιμή
- Δομές και αλγόριθμοι χωρικών δεδομένων
- Πολυδιάστατες λειτουργίες επεξεργασίας εικόνας
- Αρχείο IO
Ας ξεκινήσουμε λοιπόν. :)
Τι είναι το SciPy;
Το SciPy είναι μια βιβλιοθήκη Python ανοιχτού κώδικα που χρησιμοποιείται για την επίλυση επιστημονικών και μαθηματικών προβλημάτων. Είναι χτισμένο στο επέκταση και επιτρέπει στο χρήστη να χειρίζεται και να οπτικοποιεί δεδομένα με ένα ευρύ φάσμα εντολών υψηλού επιπέδου. Όπως αναφέρθηκε προηγουμένως, το SciPy βασίζεται στο NumPy και επομένως εάν εισαγάγετε το SciPy, δεν χρειάζεται να εισαγάγετε το NumPy.
NumPy εναντίον SciPy
Τόσο το NumPy όσο και το SciPy είναι χρησιμοποιείται για χρησιμοποιημένη μαθηματική και αριθμητική ανάλυση. Το NumPy περιέχει δεδομένα πίνακα και βασικές λειτουργίες όπως ταξινόμηση, ευρετηρίαση, κ.λπ. ενώ, το SciPy αποτελείται από όλο τον αριθμητικό κώδικα. Αν και το NumPy παρέχει έναν αριθμό που μπορεί να βοηθήσει στην επίλυση γραμμικής άλγεβρας, μετασχηματισμών Fourier, κ.λπ., το SciPy είναι η βιβλιοθήκη που περιέχει πραγματικά πλήρως λειτουργικές εκδόσεις αυτών των λειτουργιών μαζί με πολλές άλλες. Ωστόσο, εάν κάνετε επιστημονική ανάλυση χρησιμοποιώντας το Python, θα πρέπει να εγκαταστήσετε τόσο το NumPy όσο και το SciPy, καθώς το SciPy βασίζεται στο NumPy.
Πακέτα σε SciPy:
Το SciPy διαθέτει μια σειρά από πακέτα για διάφορους επιστημονικούς υπολογισμούς που εμφανίζονται στον παρακάτω πίνακα:
Ονομα | Περιγραφή |
σύμπλεγμα | Αλγόριθμοι ομαδοποίησης |
σταθερές | Φυσικές και μαθηματικές σταθερές |
fftpack | Γρήγορες ρουτίνες Fourier Transform |
ενσωματώνουν | Ολοκληρωτές και συνήθεις λύσεις διαφορικών εξισώσεων |
παρεμβάλλω | Παρεμβολή και εξομάλυνση |
Εγώ | Είσοδος και έξοδος |
linalg | Γραμμική άλγεβρα |
πετάω | Ν-διαστατική επεξεργασία εικόνας |
οδρ | Ορθογώνια απόσταση παλινδρόμησης |
βελτιστοποίηση της | Βελτιστοποίηση και ρουτίνες εύρεσης ριζών |
σήμα | Επεξεργασία σήματος |
αραιός | Αραιοί πίνακες και συναφείς ρουτίνες |
χωρική | Δομές και αλγόριθμοι χωρικών δεδομένων |
ειδικός | Ειδικές λειτουργίες |
στατιστικά | Στατιστικές κατανομές και συναρτήσεις |
Ωστόσο, για μια λεπτομερή περιγραφή, μπορείτε να ακολουθήσετε το επίσημη τεκμηρίωση .
Αυτά τα πακέτα πρέπει να εισαχθούν αποκλειστικά πριν από τη χρήση τους. Για παράδειγμα:
από scipy εισαγωγή συμπλέγματος
Προτού εξετάσουμε λεπτομερώς καθεμία από αυτές τις λειτουργίες, ας ρίξουμε μια πρώτη ματιά στις λειτουργίες που είναι κοινές τόσο στο NumPy όσο και στο SciPy.
Βασικές λειτουργίες:
Αλληλεπίδραση με το NumPy:
Το SciPy βασίζεται στο NumPy και επομένως μπορείτε να χρησιμοποιήσετε τις λειτουργίες του NumPy για να χειριστείτε τις συστοιχίες. Για να μάθετε σε βάθος σχετικά με αυτές τις λειτουργίες, μπορείτε απλώς να χρησιμοποιήσετε τις λειτουργίες βοήθειας (), πληροφοριών () ή πηγής ().
βοήθεια():
Για να λάβετε πληροφορίες σχετικά με οποιαδήποτε λειτουργία, μπορείτε να χρησιμοποιήσετε το βοήθεια() λειτουργία. Υπάρχουν δύο τρόποι με τους οποίους μπορεί να χρησιμοποιηθεί αυτή η λειτουργία:
- χωρίς παραμέτρους
- χρησιμοποιώντας παραμέτρους
Εδώ είναι ένα παράδειγμα που δείχνει και τις δύο παραπάνω μεθόδους:
από scipy import cluster help (cluster) #with parameter help () # χωρίς παράμετρο
Όταν εκτελείτε τον παραπάνω κώδικα, η πρώτη βοήθεια () επιστρέφει τις πληροφορίες σχετικά με το σύμπλεγμα υποσύστημα. Η δεύτερη βοήθεια () ζητά από τον χρήστη να εισαγάγει το όνομα οποιασδήποτε ενότητας, λέξης-κλειδιού κ.λπ. για την οποία ο χρήστης επιθυμεί να αναζητήσει πληροφορίες. Για να σταματήσετε την εκτέλεση αυτής της λειτουργίας, απλά πληκτρολογήστε 'quit' και πατήστε enter.
πληροφορίες ():
Αυτή η συνάρτηση επιστρέφει πληροφορίες σχετικά με το επιθυμητό , ενότητες κ.λπ.
scipy.info (σύμπλεγμα)
πηγή():
Ο πηγαίος κώδικας επιστρέφεται μόνο για αντικείμενα γραμμένα . Αυτή η συνάρτηση δεν επιστρέφει χρήσιμες πληροφορίες σε περίπτωση που οι μέθοδοι ή τα αντικείμενα είναι γραμμένα σε οποιαδήποτε άλλη γλώσσα όπως η C. Ωστόσο, σε περίπτωση που θέλετε να χρησιμοποιήσετε αυτήν τη λειτουργία, μπορείτε να το κάνετε ως εξής:
scipy.source (σύμπλεγμα)
Ειδικές λειτουργίες:
Το SciPy παρέχει μια σειρά ειδικών λειτουργιών που χρησιμοποιούνται στη μαθηματική φυσική όπως η ελλειπτική, λειτουργίες ευκολίας, γάμμα, beta κ.λπ.Για να αναζητήσετε όλες τις λειτουργίες, μπορείτε να χρησιμοποιήσετε τη λειτουργία help () όπως περιγράφεται παραπάνω.
Εκθετικές και τριγωνομετρικές συναρτήσεις:
Το πακέτο Special Function της SciPy παρέχει μια σειρά λειτουργιών μέσω των οποίων μπορείτε να βρείτε εκθέτες και να λύσετε τριγωνομετρικά προβλήματα.
Εξετάστε το ακόλουθο παράδειγμα:
ΠΑΡΑΔΕΙΓΜΑ:
από scipy import special a = special.exp10 (3) print (a) b = special.exp2 (3) print (b) c = special.sindg (90) print (c) d = special.cosdg (45) print ( ρε)
ΠΑΡΑΓΩΓΗ:
λάβετε μήκος javascript του πίνακα
1000.0
8.0
1.0
0,7071067811865475
Υπάρχουν πολλές άλλες λειτουργίες στο πακέτο ειδικών λειτουργιών του SciPy που μπορείτε να δοκιμάσετε μόνοι σας.
Λειτουργίες ενοποίησης:
Το SciPy παρέχει μια σειρά λειτουργιών για την επίλυση ολοκληρωμένων στοιχείων. Από το συνηθισμένο ενσωματωμένο διαφορικό έως τη χρήση τραπεζοειδών κανόνων για τον υπολογισμό ολοκληρωμάτων, το SciPy είναι μια αποθήκη λειτουργιών για την επίλυση όλων των τύπων προβλημάτων ολοκληρωμάτων.
Γενική ολοκλήρωση:
Το SiPy παρέχει μια συνάρτηση που ονομάζεται τετράδυμο για τον υπολογισμό της ολοκλήρωσης μιας συνάρτησης που έχει μία μεταβλητή. Τα όρια μπορεί να είναι ± & άπειρο(± inf
) για να δείξει άπειρα όρια. Η σύνταξη της συνάρτησης quad () έχει ως εξής:
ΣΥΝΤΑΞΗ:
quad (func, a, b, args = (), full_output = 0, epsabs = 1.49e-08, epsrel = 1.49e-08, όριο = 50, βαθμοί = Κανένα, βάρος = Κανένα, wvar = Κανένα, wopts = Κανένα , maxp1 = 50, limlst = 50)
Εδώ, η συνάρτηση θα ενσωματωθεί μεταξύ των ορίων a και b (μπορεί επίσης να είναι άπειρη).
ΠΑΡΑΔΕΙΓΜΑ:
από scipy import special από scipy import integrate a = lambda x: special.exp10 (x) b = scipy.integrate.quad (a, 0, 1) print (b)
Στο παραπάνω παράδειγμα, η συνάρτηση «a» αξιολογείται μεταξύ των ορίων 0, 1. Όταν εκτελείται αυτός ο κωδικός, θα δείτε την ακόλουθη έξοδο.
ΠΑΡΑΓΩΓΗ:
(3.9086503371292665, 4.3394735994897923e-14)
Διπλή ολοκληρωμένη λειτουργία:
Το SciPy παρέχει dblquad που μπορεί να χρησιμοποιηθεί για τον υπολογισμό των διπλών ολοκληρωμάτων. Ένα διπλό ακέραιο, όπως γνωρίζουν πολλοί από εμάς, αποτελείται από δύο πραγματικές μεταβλητές. Η συνάρτηση dblquad () θα πάρει τη συνάρτηση να ενσωματωθεί ως παράμετρος της μαζί με 4 άλλες μεταβλητές που καθορίζουν τα όρια και τις συναρτήσεις δ και dx.
ΠΑΡΑΔΕΙΓΜΑ:
από scipy import integrate a = lambda y, x: x * y ** 2 b = lambda x: 1 c = lambda x: -1 integrate.dblquad (a, 0, 2, b, c)
ΠΑΡΑΓΩΓΗ:
-1.3333333333333335, 1.4802973661668755e-14)
Το SciPy παρέχει διάφορες άλλες λειτουργίες για την αξιολόγηση τριπλών ολοκληρωμάτων, n ολοκληρωμάτων, Romberg Integrals κ.λπ. που μπορείτε να εξερευνήσετε λεπτομερέστερα. Για να βρείτε όλες τις λεπτομέρειες σχετικά με τις απαιτούμενες λειτουργίες, χρησιμοποιήστε τη λειτουργία βοήθειας.
Λειτουργίες βελτιστοποίησης:
Το scipy.optimize παρέχει έναν αριθμό αλγορίθμων βελτιστοποίησης που χρησιμοποιούνται συνήθως, οι οποίοι είναι ορατοί χρησιμοποιώντας τη λειτουργία βοήθειας.
Αποτελείται βασικά από τα ακόλουθα:
- Απεριόριστη και περιορισμένη ελαχιστοποίηση πολλαπλών παραλλαγών κλιματικών λειτουργιών, δηλ σμικροποιώ (π.χ. BFGS, Newton Conjugate Gradient, Nelder_mead simplex, κ.λπ.)
- Καθολικές ρουτίνες βελτιστοποίησης (π.χ. diferensial_evolution, dual_annealing, κ.λπ.)
- Ελαχιστοποίηση ελάχιστων τετραγώνων και προσαρμογή καμπύλης (π.χ. τουλάχιστον_ τετράγωνα, καμπύλη_fit κ.λπ.)
- Scalar univariate λειτουργίες ελαχιστοποιητές και root finders (π.χ. minimize_scalar και root_scalar)
- Πολυμεταβλητές λύσεις συστήματος εξίσωσης χρησιμοποιώντας αλγόριθμους όπως υβριδικό Powell, Levenberg-Marquardt.
Λειτουργία Rosenbrook:
Συνάρτηση Rosenbrook ( τριαντάφυλλο ) είναι ένα πρόβλημα δοκιμής που χρησιμοποιείται για αλγόριθμους βελτιστοποίησης με βάση την κλίση. Ορίζεται ως εξής στο SciPy:
ΠΑΡΑΔΕΙΓΜΑ:
εισαγωγή numpy ως np από το scipy. βελτιστοποίηση εισαγωγής rosen a = 1.2 * np.ange (5) rosen (a)
ΠΑΡΑΓΩΓΗ: 7371.0399999999945
Nelder-Mead:
οNelder- Η μέθοδος Mead είναι μια αριθμητική μέθοδος που χρησιμοποιείται συχνά για την εύρεση του min / max μιας συνάρτησης σε έναν πολυδιάστατο χώρο. Στο ακόλουθο παράδειγμα, χρησιμοποιείται η μέθοδος ελαχιστοποίησης μαζί με τον αλγόριθμο Nelder-Mead.
ΠΑΡΑΔΕΙΓΜΑ:
από scipy import optimize a = [2.4, 1.7, 3.1, 2.9, 0.2] b = optimize.minimize (optimize.rosen, a, method = 'Nelder-Mead') b.x
ΠΑΡΑΓΩΓΗ: πίνακας ([0.96570182, 0.93255069, 0.86939478, 0.75497872, 0.56793357])
Λειτουργίες παρεμβολής:
Στο πεδίο της αριθμητικής ανάλυσης, η παρεμβολή αναφέρεται στην κατασκευή νέων σημείων δεδομένων σε ένα σύνολο γνωστών σημείων δεδομένων. Η βιβλιοθήκη SciPy αποτελείται από ένα πακέτο που ονομάζεται scipy.interpolate που αποτελείται απόσυναρτήσεις και κλάσεις spline, μονοδιάστατες και πολυδιάστατες (univariate και multivariate) τάξεις παρεμβολής κ.λπ.
Univariate παρεμβολή:
Η μονοπολική παρεμβολή είναι βασικά ένας τομέας προσαρμογής καμπύλης πουβρίσκει την καμπύλη που παρέχει μια ακριβή εφαρμογή σε μια σειρά δισδιάστατων σημείων δεδομένων. Το SciPy παρέχει interp1d συνάρτηση που μπορεί να χρησιμοποιηθεί για την παραγωγή μη διαφοροποιημένης παρεμβολής.
ΠΑΡΑΔΕΙΓΜΑ:
εισαγωγή matplotlib.pyplot ως plt από scipy εισαγωγή interpolate x = np.ange (5, 20) y = np.exp (x / 3.0) f = interpolate.interp1d (x, y) x1 = np.ange (6, 12) y1 = f (x1) # χρησιμοποιήστε τη συνάρτηση παρεμβολής που επιστρέφεται από το «interp1d` plt.plot (x, y, 'o', x1, y1, '-') plt.show
ΠΑΡΑΓΩΓΗ:
Πολυμεταβλητή παρεμβολή:
Πολυμεταβλητή παρεμβολή(χωρικήπαρεμβολή) είναι ένα είδοςπαρεμβολήσε συναρτήσεις που αποτελούνται από περισσότερες από μία μεταβλητές. Το ακόλουθο παράδειγμα δείχνει ένα παράδειγμα του interp2d λειτουργία.
Η παρεμβολή σε πλέγμα 2-D χρησιμοποιώντας τη συνάρτηση interp2d (x, y, z) βασικά θα χρησιμοποιεί συστοιχίες x, y, z για να προσεγγίσει κάποια λειτουργία f: 'z = f (x, y)' και επιστρέφει μια συνάρτηση της οποίας η μέθοδος κλήσης χρησιμοποιεί παρεμβολή σπλήνας για να βρείτε την αξία των νέων πόντων.
ΠΑΡΑΔΕΙΓΜΑ:
από scipy import interpolate import matplotlib.pyplot ως plt x = np.arange (0,10) y = np.ange (10,25) x1, y1 = np.meshgrid (x, y) z = np.tan (xx + yy) f = interpolate.interp2d (x, y, z, kind = 'cubic') x2 = np. εύρος (2,8) y2 = np. εύρος (15,20) z2 = f (xnew, ynew) plt. plot (x, z [0,:], 'ro-', x2, z2 [0,:], '-') plt.show ()
ΠΑΡΑΓΩΓΗ:
java βρείτε τον μεγαλύτερο αριθμό στη λίστα
Λειτουργίες μετασχηματισμού Fourier:
Η ανάλυση Fourier είναι μια μέθοδος που ασχολείται με την έκφραση μιας συνάρτησης ως ένα άθροισμα περιοδικών συνιστωσών και την ανάκτηση του σήματος από αυτά τα στοιχεία. ο fft λειτουργίες μπορούν να χρησιμοποιηθούν για την επιστροφή τουδιακριτός μετασχηματισμός Fourier μιας πραγματικής ή σύνθετης ακολουθίας.
ΠΑΡΑΔΕΙΓΜΑ:
από scipy.fftpack import fft, ifft x = np.array ([0,1,2,3]) y = fft (x) print (y)
ΠΑΡΑΓΩΓΗ: [6. + 0.j -2. + 2.j -2. + 0.j -2.-2.j]
Ομοίως, μπορείτε να βρείτε το αντίστροφο αυτού χρησιμοποιώντας το επ λειτουργεί ως εξής:
ΠΑΡΑΔΕΙΓΜΑ:
rom scipy.fftpack import fft, ifft x = np.array ([0,1,2,3]) y = ifft (x) εκτύπωση (y)
ΠΑΡΑΓΩΓΗ: [1.5 + 0.j -0.5-0.5j -0.5 + 0.j -0.5 + 0.5j]
Λειτουργίες επεξεργασίας σήματος:
Η επεξεργασία σημάτων ασχολείται μεΑνάλυση, τροποποίηση και σύνθεση σημάτων όπως ήχος, εικόνες κ.λπ. Το SciPy παρέχει ορισμένες λειτουργίες χρησιμοποιώντας τις οποίες μπορείτε να σχεδιάσετε, να φιλτράρετε και να παρεμβάλετε μονοδιάστατα και δισδιάστατα δεδομένα.
Φιλτράρισμα:
Φιλτράροντας ένα σήμα, ουσιαστικά αφαιρείτε τα ανεπιθύμητα στοιχεία από αυτό. Για να εκτελέσετε διηθημένο φιλτράρισμα, μπορείτε να χρησιμοποιήσετε το παραγγελία_ φίλτρου λειτουργία. Αυτή η λειτουργία εκτελεί βασικά ταξινομημένο φιλτράρισμα σε έναν πίνακα. Η σύνταξη αυτής της συνάρτησης έχει ως εξής:
ΣΥΝΤΑΞΗ:
order_filter (a, domain, rank)
a = Ν-διαστατικός πίνακας εισόδου
domain = πίνακας μάσκας με τον ίδιο αριθμό διαστάσεων με το «a»
rank = Μη αρνητικός αριθμός που επιλέγει στοιχεία από τη λίστα μετά την ταξινόμησή του (0 είναι ο μικρότερος ακολουθούμενος από 1…)
ΠΑΡΑΔΕΙΓΜΑ:
από scipy import signal x = np.arange (35) .reshape (7, 5) domain = np.identity (3) print (x, end = 'nn') print (signal.order_filter (x, domain, 1))
ΠΑΡΑΓΩΓΗ:
[[0 1 2 3 4]
[5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]
[25 26 27 28 29]
[30 31 32 33 34]]
[[0. 1. 2. 3. 0.]
[5. 6. 7. 8. 3.]
[10. 11. 12. 13. 8.]
[δεκαπέντε. 16. 17. 18. 13.]
[είκοσι. 21. 22. 23. 18.]
[25. 26. 27. 28. 23.]
[0. 25. 26. 27. 28.]]
Κυματομορφές:
Το subpackage scipy.signal αποτελείται επίσης από διάφορες λειτουργίες που μπορούν να χρησιμοποιηθούν για τη δημιουργία κυματομορφών. Μια τέτοια λειτουργία είναι τερέτισμα . Αυτή η συνάρτηση είναι fη γεννήτρια cosine-swept και η σύνταξη έχουν ως εξής:
ΣΥΝΤΑΞΗ:
chirp (t, f0, t1, f1, μέθοδος = «γραμμικό», phi = 0, vertex_zero = True)
που,
ΠΑΡΑΔΕΙΓΜΑ:
από scipy.signal chirp εισαγωγής, εισαγωγή φασματογράφου matplotlib.pyplot ως plt t = np.linspace (6, 10, 500) w = chirp (t, f0 = 4, f1 = 2, t1 = 5, method = 'linear') plt.plot (t, w) plt.title ('Linear Chirp') plt.xlabel ('time in sec)') plt.show ()
ΠΑΡΑΓΩΓΗ:
Γραμμική άλγεβρα:
Η γραμμική άλγεβρα ασχολείται με γραμμικές εξισώσεις και τις αναπαραστάσεις τους χρησιμοποιώντας διανύσματα και πίνακες. Το SciPy είναι ενσωματωμένοΒιβλιοθήκες ATLAS LAPACK και BLAS και είναιεξαιρετικά γρήγορη στην επίλυση προβλημάτων που σχετίζονται με τη γραμμική άλγεβρα. Εκτός από όλες τις λειτουργίες του numpy.linalg, το scipy.linalg παρέχει επίσης πολλές άλλες προηγμένες λειτουργίες. Επίσης, εάν το numpy.linalg δεν χρησιμοποιείται μαζί μεΗ υποστήριξη ATLAS LAPACK και BLAS, το scipy.linalg είναι ταχύτερο από το numpy.linalg.
Βρίσκοντας το αντίστροφο ενός πίνακα:
Μαθηματικά, το αντίστροφο ενός πίνακα Αείναι ο πίνακαςσιέτσιΑΒ = ΙπουΕγώείναι ο πίνακας ταυτότητας που αποτελείται από αυτούς κάτω από την κύρια διαγώνια που υποδηλώνεται ωςΒ = Α-ένας. Στο SciPy, αυτό το αντίστροφο μπορεί να ληφθεί χρησιμοποιώντας το linalg.inv μέθοδος.
ΠΑΡΑΔΕΙΓΜΑ:
εισαγωγή numpy ως np από scipy import linalg A = np.array ([[1,2], [4,3]]) B = linalg.inv (A) print (B)
ΠΑΡΑΓΩΓΗ:
[[-0,6 0,4]
[0,8 -0,2]]
Εύρεση των καθοριστικών:
Η τιμή που προκύπτει αριθμητικά από τους συντελεστές της μήτρας είναι γνωστή ως καθοριστικός παράγοντας μιας τετραγωνικής μήτρας. Στο SciPy, αυτό μπορεί να γίνει χρησιμοποιώντας μια συνάρτηση ο που έχει την ακόλουθη σύνταξη:
ΣΥΝΤΑΞΗ:
det (a, overwrite_a = False, check_finite = True)
που,
a: (M, M) Είναι ένας τετραγωνικός πίνακας
συγχώνευση υλοποίησης τύπου c ++
overwrite_a (bool, προαιρετικό): Να επιτρέπεται η αντικατάσταση δεδομένων στο a
check_finite (bool, προαιρετικό): Για να ελέγξετε εάν ο πίνακας εισόδου αποτελείται μόνο από πεπερασμένους αριθμούς
ΠΑΡΑΔΕΙΓΜΑ:
εισαγωγή numpy ως np από scipy import linalg A = np.array ([[1,2], [4,3]]) B = linalg.det (A) print (B)
ΠΑΡΑΓΩΓΗ: -5.0
Αραιές ιδιοτιμές:
Οι ιδιοτιμές είναι ένα συγκεκριμένο σύνολο βαθμών που συνδέονται με γραμμικές εξισώσεις. Το ARPACK παρέχει ότι σας επιτρέπει να βρείτε τις ιδιοτιμές (eigenvectors) αρκετά γρήγορα. Η πλήρης λειτουργικότητα του ARPACK είναι συσκευασμένη μέσαδύο διεπαφές υψηλού επιπέδου που είναι scipy.sparse.linalg.eigs και scipy.sparse.linalg.eigsh. αυγά. Η διασύνδεση eigs σας επιτρέπει να βρείτε τις ιδιοτιμές των πραγματικών ή σύνθετων μη συμμετρικών τετραγωνικών πινάκων, ενώ η διεπαφή eigsh περιέχει διεπαφές για πραγματικούς-συμμετρικούς ή σύνθετους-ερημιτικούς πίνακες.
ο μη Η συνάρτηση επιλύει ένα γενικευμένο πρόβλημα ιδιοτιμής για ένα σύνθετο Ερμιτικό ή πραγματικό συμμετρικό πλέγμα.
ΠΑΡΑΔΕΙΓΜΑ:
από scipy.linalg import eigh import numpy as np A = np.array ([[1, 2, 3, 4], [4, 3, 2, 1], [1, 4, 6, 3], [2, 3, 2, 5]]) a, b = eigh (A) print ('Επιλεγμένες ιδιοτιμές:', a) print ('Complex ndarray:', b)
ΠΑΡΑΓΩΓΗ:
Επιλεγμένες ιδιοτιμές: [-2.53382695 1.66735639 3.69488657 12.17158399]
Συγκρότημα ndarray: [[0,69205614 0,5829305 0,25682823 -0,33954321]
[-0.68277875 0,46838936 0,03700454 -0,5595134]
[0.23275694 -0.29164622 -0.72710245 -0.57627139]
[0,02637572 -0,59644441 0,63560361 -0,48945525]]
Δομές και αλγόριθμοι χωρικών δεδομένων:
Τα χωρικά δεδομένα βασικά αποτελούνται από αντικείμενα που αποτελούνται από γραμμές, σημεία, επιφάνειες κλπ. Το scipy. χωρικό πακέτο του SciPy μπορεί να υπολογίσειVoronoi διαγράμματα, τριγωνοί κ.λπ. χρησιμοποιώντας τη βιβλιοθήκη Qhull. Αποτελείται επίσης από εφαρμογές KDTree για ερωτήματα σημείων πλησιέστερου γείτονα.
Τριγωνοί Delaunay:
Μαθηματικά, οι τριγωνοί Delaunay για ένα σύνολο διακριτών σημείων σε ένα επίπεδο είναι ένας τριγωνισμός έτσι ώστε κανένα σημείο στο δεδομένο σύνολο σημείων να μην είναιστο εσωτερικό του κύκλου οποιουδήποτε τριγώνου.
ΠΑΡΑΔΕΙΓΜΑ:
εισαγωγή matplotlib.pyplot ως plt από scipy.spatial εισαγωγή Delaunay points = np.array ([[0, 1], [1, 1], [1, 0], [0, 0]]) a = Delaunay (βαθμοί) #Delaunay object print (a) print (a.simplices) plt.triplot (points [:, 0], points [:, 1], a.simplices) plt.plot (σημεία [:, 1], σημεία [:, 0], 'o') plt.show ()
ΠΑΡΑΓΩΓΗ:
Πολυδιάστατες λειτουργίες επεξεργασίας εικόνας:
Η επεξεργασία εικόνων βασικά ασχολείται με την εκτέλεση λειτουργιών σε μια εικόνα για την ανάκτηση πληροφοριών ή τη λήψη βελτιωμένης εικόνας από την αρχική. Το πακέτο scipy.ndimage αποτελείται από έναν αριθμόλειτουργίες επεξεργασίας και ανάλυσης εικόνων που έχουν σχεδιαστεί για να λειτουργούν με πίνακες αυθαίρετων διαστάσεων.
Συνέλευση και συσχέτιση:
Το SciPy παρέχει έναν αριθμό λειτουργιών που επιτρέπουν συσχέτιση και συνέλιξη των εικόνων.
- Η λειτουργία συσχετίζω1d μπορεί να χρησιμοποιηθεί για τον υπολογισμό της μονοδιάστατης συσχέτισης κατά μήκος ενός δεδομένου άξονα
- Η λειτουργία συσχετίζω επιτρέπει πολυδιάστατη συσχέτιση οποιουδήποτε δεδομένου πίνακα με τον καθορισμένο πυρήνα
- Η λειτουργία convolve1d μπορεί να χρησιμοποιηθεί για τον υπολογισμό μιας μονοδιάστατης συνέλιξης κατά μήκος ενός δεδομένου άξονα
- Η λειτουργία αγκαλιάζω επιτρέπει πολυδιάστατη συνέλιξη οποιουδήποτε δεδομένου πίνακα με τον καθορισμένο πυρήνα
ΠΑΡΑΔΕΙΓΜΑ:
εισαγωγή numpy ως np από το scipy.ndimage εισαγωγή συσχετισμός1δ συσχετισμός1δ ([3,5,1,7,2,6,9,4], βάρη = [1,2])
ΠΑΡΑΓΩΓΗ: πίνακας ([9, 13, 7, 15, 11, 14, 24, 17])
Αρχείο IO:
Το πακέτο scipy.io παρέχει μια σειρά από λειτουργίες που σας βοηθούν να διαχειρίζεστε αρχεία διαφόρων μορφών, όπως αρχεία MATLAB, αρχεία IDL, αρχεία Matrix Market κ.λπ.
Για να χρησιμοποιήσετε αυτό το πακέτο, θα πρέπει να το εισαγάγετε ως εξής:
εισαγωγή του scipy.io ως sio
Για πλήρεις πληροφορίες σχετικά με την υπο συσκευασία, μπορείτε να ανατρέξετε στο επίσημο έγγραφο στο Αρχείο IO .
Αυτό μας φέρνει στο τέλος αυτού του σεμιναρίου SciPy. Ελπίζω να έχετε καταλάβει τα πάντα ξεκάθαρα. Βεβαιωθείτε ότι ασκείστε όσο το δυνατόν περισσότερο .
Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του ιστολογίου 'SciPy Tutorial' και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.
Για να μάθετε σε βάθος την Python μαζί με τις διάφορες εφαρμογές της, μπορείτε να εγγραφείτε ζωντανά με υποστήριξη 24/7 και πρόσβαση σε όλη τη διάρκεια ζωής.