Ασκήσεις στην Numpy: Εισαγωγικά

Γενική οδηγία:

Αποθηκεύστε τα αρχεία που σας δίνονται στον υπολογιστή σας και χρησιμοποιώντας την υλοποίηση της python που προτιμάτε απαντήστε στην ερώτηση.

Numpy

Η Numpy είναι ένα πακέτο (σύνολο) συναρτήσεων ειδικά σχεδιασμένες για μαθηματικούς υπολογισμούς Κατασκευάζεται μια νέα δομή - κλάση αντικειμένων, η array, η οποία δίνει τη δυνατότητα να ορισθούν διανύσματα και πίνακες. Το array είναι μια δομή που μοιάζει με τη δομή list της Python. Σε αντίθεση με τη list η διάσταση ενός array είναι ορισμένη από την αρχή και αποθηκεύει αντικείμενα που είναι μόνο του ίδου τύπου (δηλ. int, float, boolean, str, ...)
  • Με την εντολή array([10, 20, 30]) δημιουργούμε ένα αντικείμενο array που έχει διάσταση 1. Είναι το διάνυσμα [10, 20, 30]. Numpy7-array.py
    	
  • Υπάρχουν διάφορες εντολές οι οποίες μας δίνουν πληροφορίες για ένα αντικείμενο array. Όπως η ndim, δηλαδή αν a είναι ένα array τότε η a.ndim δηλώνει τη διάσταση του a. Φτιάξτε ένα array με 5 ακεραίους, ή με 5 πραγματικούς ή με 5 strings και χρησιμοποιήστε τις ndim (διάσταση), shape (μορφή) και dtype (τύπος) για να δείτε τις αντίστοιχες ιδιότητες του a. Numpy7-array2.py
    	
  • Μπορούμε να θεωρήσουμε και 2-διάστατα array, π.χ. το array([[1,2],[2,3]]) δηλώνει ένα πίνακα 2 διαστάσεων (γραμμές και στήλες). Προσέξτε τη θέση των [ και ] για τον ορισμό των γραμμών και στηλών του πίνακα. Numpy7-array3.py
    	
  • Υπάρχουν διάφορες χρήσιμες εντολές. Με την εντολή arange μπορούμε να δημιουργήσουμε ένα 1-διάστατο array με στοιχεία ακεραίους, όπως και με την range στην python. Σε αντίθεση όμως με την range μπορούμε να χρησιμοποιήσουμε και πραγματικούς. Numpy7-array4.py
    	
  • Με την εντολή linspace μπορούμε να δημιουργήσουμε ένα 1-διάστατο array με ορισμένο αριθμό ισαπέχοντων πραγματικών αριθμών. Επίσης με την εντολή zeros(m) δημιουργήσουμε ένα array με m αριθμό μηδενικών και με την ones(m) ένα array με m αριθμό μονάδων. Επίσης με την εντολή zeros((m,n)) δημιουργούμε 2-διάστατα arrays \(m\times n\). Numpy7-linspace.py
    	
  • Μπορούμε να αλλάξουμε τη μορφή ενός array, δηλαδή ένα 1-διάστατο array μπορεί να γίνει 2-διάστατο. Χρησιμοποιούμε την εντολή reshape και ο μόνος περιορισμός που έχουμε είναι ότι το νέο array πρεπει να έχει το ίδιο πλήθος στοιχείων με το παλιό. Numpy7-reshape.py
    	
  • Μπορούμε να πάρουμε ένα στοιχείο ενός 1-διάστατου array όπως και στις π.χ. στις λίστες. Το ίδιο ισχύει και για το κομμάτιασμα. Δημιουργείστε ένα 1-διάστατο array 10 στοιχείων και τυπώστε το στοιχείο με δείκτη 5. Επίσης τυπώστε το κομμάτι από 1 έως και το 5, καθώς τα στοιχεία με δείκτες από 1 έως 9 με βήμα 2. Numpy7-slicing.py
    	
  • Δημιουργείστε τον πίνακα $$ Α=\left(\begin{array}{cccc} 1 & 2 & 3 & 4\\ 5 & 6 & 7 & 8\\ 9 &10 &11& 12 \end{array}\right) $$ Και στη συνέχεια από τον A με κομμάτιασμα τυπώστε την πρώτη γραμμή, την πρώτη στήλη και τους υποπίνακες $$ \left(\begin{array}{cc} 1 & 2\\ 5 & 6 \end{array}\right),\quad \left(\begin{array}{cc} 6 & 7\\ 10 & 11 \end{array}\right) ,\quad \left(\begin{array}{cc} 3 & 4\\ 7 & 8 \end{array}\right) $$ Δίνοντας A[i,j] παίρνουμε το στοιχείο του πίνακα στην i γραμμή και j στήλη. Numpy7-slicing2.py
    	
  • Χρησιμοποιήστε τη βιβλιοθήκη matplotlib για να σχεδιάσετε τη γραφική παράσταση της συνάρτησης \(f(x)=xsin(10/x)\) στο διάστημα (0.1,1). Χρησιμοποιήστε όσα σημεία νομίζετε. Προσθέστε λεζάντες στους άξονες και στο γράφημα. Η βιβλιοθήκες matplotlib και η pylab έχουν όμοιες εντολές. Numpy7-plot.py