ntua-cvsp-lab / DSP_LabSupport

Here the students of the 2019-2020 DSP course can submit questions regarding the course to the teaching assistants.
7 stars 3 forks source link

[Lab2] 3.1 Δημιοργία MxD πίνακα #73

Closed odychlapanis closed 4 years ago

odychlapanis commented 4 years ago

Καλησπέρα, Έχω σκεφτεί διάφορους τρόπους για την υλοποίηση του mxd πίνακα αλλά επειδή θα με ενδιέφερε και η αποδοτικότητα για το συγκεκριμένο ερώτημα, θα ήθελα να ρωτήσω κάποιες συμβουλές έτσι ώστε ο κώδικας να κάνει πιο αποτελεσματικά τη λειτουργία του. Αρχικά θα ήθελα να ρωτήσω αν είναι καλύτερο πρώτα να κάνουμε τους υπολογισμούς για ένα μόνο αρχείο (πχ step00.npz) και μετά να προσθέτουμε με κάποια εντολή το αποτέλεσμα στον μεγάλο πίνακα (πχ np.append ή np.concatenate) ή εναλλακτικά να διαβάζουμε όλα τα αρχεία από την αρχή, να βρίσκουμε την Teager ενέργεια για όλα μαζί κτλ και μετά όλα μαζί να τα προσθέτουμε στο τέλος στον πίνακα. Έχουν κάποια ουσιώδη διαφορά αυτά τα δύο είτε ως προς τον προγραμματιστή είτε ως προς την πολυπλοκότητα για τον υπολογιστή; Επίσης να προτιμήσουμε σαν στρατιγική να δημιουργούμε τους πίνακες μας από την αρχή με αρχικοποίηση (πχ np.empty((m,d))) ή να προτιμούμε κάποια εντολή τύπου np.append η οποία σταδιακά χτίζει τον πίνακα; Επειδή δεν έχουμε εμπειρία με τόσο μεγάλους πίνακες νομίζω ότι αυτά τα ερωτήματα που συνήθως τα αμελούμε είναι σημαντικά σε αυτές τις περιπτώσεις και σαν καλή πρακτική.

filby89 commented 4 years ago

Καλησπέρα ! νομίζω για τα μεγέθη της άσκησης είναι αμελητέο να κοιτάξεις αυτά τα θέματα. Γενικά το preallocation του πίνακα σίγουρα θα οδηγεί σε μεγαλύτερη ταχύτητα, αλλά δε νομίζω ότι θα δεις κάποια εμφανή διαφορά στο χρόνο ταχύτητας. Πιο απλό απο άποψη προγραμματισμού πιστεύω είναι να το κάνεις για κάθε αρχείο επίσης διαφορετικά (αλλιώς ίσως πρέπει να πειράξεις τις συναρτήσεις σου ώστε να δέχονται πολυδιάστατους πίνακες, και να εφαρμόζονται σε κάποιο συγκεκριμένο axis τους). Πάντως νομίζω ότι όσον αφορά αυτά τα ζητήματα δεν χρειάζεται να ασχοληθείς περισσότερο εδώ (είναι εκτός scope του μαθήματος), και ούτε θα δεις κάποια εμφανή διαφορά στο χρόνο εκτέλεσης. Τσέκαρε και το issue #53