Laboratorio Apprendimento Automatico

Documenti analoghi
Plotting: matplotlib & pyplot

MATLAB - Programmazione - 2. Antonino Polimeno

Introduzione a matplotlib: il modulo pyplot

Introduzione a SciPy

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Introduzione a Matlab (e al Calcolo Numerico)

SciPy. Programmazione Orientata agli Oggetti e Scripting in Python

Edmondo Giovannozzi Introduzione a Python.

Prodotto tra vettori/matrici

Introduzione a MATLAB

3. Matrici e algebra lineare in MATLAB

Subplots: griglie regolari di grafici

Introduzione a Matlab

Introduzione a SciPy

Introduzione al MATLAB c Parte 1 Variabili ed array

Analisi di segnali in SciPy

Inversa di una matrice quadrata. L operatore inv() inverte una matrice quadrata non singolare (cioè in cui il determinate è diverso da zero).

ossia può anche essere localizzato univocamente sul piano complesso con la sua forma polare.

ESERCITAZIONE MATLAB

Ulteriori conoscenze di informatica Elementi di statistica Esercitazione3

Esercitazione 1: Introduzione a MATLAB

Programma di Istituzioni di matematica per il corso di Laurea in Biologia.

Microsoft Excel VI parte: Frequenze & Grafici

Richiami di algebra delle matrici a valori reali

Marco Canu Excel Advanced: Note Operative Tabelle Pivot Excel 2013 Sella & Mosca Agg. 06/05/2017

Vettori e Matrici. Vettori. Vettori e matrici: dati. Vettori di caratteri Polinomi. Dimensione (Size) numero di righe e di colonne della matrice

Esercizi di MatLab. Sommario Esercizi di introduzione a MatLab per il corso di Calcolo Numerico e Laboratorio, A.A

Python in ambiente scientifico. Linguaggi dinamici A.A. 2010/2011 1

Calcolatrice Casio FX-CG50

Laboratorio di Python

Regressione Lineare e Regressione Logistica

Introduzione ai Laboratori di Fondamenti di Analisi dei Dati. Antonino Furnari

MATLAB Elementi di grafica Costrutti di programmazione

Matematica Discreta e Algebra Lineare (per Informatica)

Adams, Calcolo Differenziale I, Casa Editrice Ambrosiana

La notazione usata è quella usuale nel caso scalare, ed è estesa al caso generale. Consideriamo una forma quadratica:

Autovalori ed autovettori di una matrice

Laboratorio di Calcolo B 68

Grafici. 1 Generazione di grafici a partire da un foglio elettronico

NORMA DI UN VETTORE. Una NORMA VETTORIALE su R n è una funzione. : R n R +

APPUNTI ED ESERCIZI DI MATEMATICA

TEMPUS PECUNIA EST COLLANA DI MATEMATICA PER LE SCIENZE ECONOMICHE FINANZIARIE E AZIENDALI

Arrays. Vector array. Matrix array. Row vector. 2D matrix. 1 2 Column vector

Diario delle lezioni di Calcolo e Biostatistica (O-Z) - a.a. 2013/14 A. Teta

1. Martedì 27/09/2016, ore: 2(2) Introduzione al corso: problemi ben posti, condizionamento, stabilità, complessità

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t.

Elementi di Informatica A. A. 2016/2017

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

Sistemi lineari. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Corso di Matematica e Statistica 3 Algebra delle matrici. Una tabella rettangolare: la matrice. Una tabella rettangolare: la matrice

Scilab. Matrici Bidimensionali. Corso di Informatica CdL: Chimica. Claudia d'amato.

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

ESTRAZIONE DI DATI 3D DA IMMAGINI DIGITALI. (Visione 3D)

Introduzione. MATLAB è l acronimo di MATrix LABoratory

Introduzione alla piattaforma Pynq

Introduzione a Python per il calcolo scientifico

Il metodo Monte Carlo. Esempio di transizione al caos. Numeri (pseudo)casuali. λ 1. Analisi dati in Fisica Subnucleare

Elementi di Algebra Lineare. Spazio Vettoriale (lineare)

Esercitazione n 2. Costruzione di grafici

Approssimazione dell esponenziale

Corso di Laurea in Chimica e Tecnologia Farmaceutiche Matematica con Elementi di Informatica COMPITO 19 Febbraio 2016

Algoritmi in C++ (prima parte)

Analisi statistica e matematico-finanziaria II. Alfonso Iodice D Enza Università degli studi di Cassino e del Lazio Meridionale

Note per il corso di Geometria e algebra lineare Corso di laurea in Ing. Elettronica e delle Telecomunicazioni

Strutture dati e loro organizzazione. Gabriella Trucco

MATLAB (3) - Grafica 2 e 3D

Il foglio elettronico

Variabile, costante ed espressione

3. Vettori, Spazi Vettoriali e Matrici

Elementi Elem d enti i d I i nf I orm nf a orm tic a a tic a e Applicazioni Numeriche T I File in Octave

Rappresentazione di curve in tre dimensioni

Matrici quadrate particolari

Elementi di statistica per l econometria

Sapienza Università di Roma Corso di laurea in Ingegneria Energetica Geometria A.A ESERCIZI DA CONSEGNARE prof.

Esercitazione 4: Vettori e Matrici

Lezioni di Algebra Lineare con applicazioni alla Geometria Analitica Errata Corrige. Fulvio Bisi, Francesco Bonsante, Sonia Brivio

CORSO DI FORMAZIONE: MICROSOFT EXCEL INTRODUTTIVO PROGRAMMA

Esercizi di MATEMATICA PER RCHITETTURA prima parte: Algebra Lineare e Geometria

A = Quindi > b=a(:) b =

Segmentazione di immagini in scala di grigio basata su clustering

Elementi di Algebra Lineare Matrici e Sistemi di Equazioni Lineari

(5 sin x + 4 cos x)dx [9]

Geometria BIAR Esercizi 2

2 Sistemi lineari. Metodo di riduzione a scala.

Fogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari

Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari

Analisi Matematica T1 - A.A prof.g.cupini CdL Ingegneria Edile Università di Bologna REGISTRO DELLE LEZIONI

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017 Palermo Luglio 2017

MATRICI E SISTEMI LINEARI

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

Sistemi lineari - Parte Seconda - Esercizi

Lezioni di Algebra Lineare con applicazioni alla Geometria Analitica Errata Corrige. Fulvio Bisi, Francesco Bonsante, Sonia Brivio

MODULO 1: ALGORITMI DI CALCOLO NUMERICO

15 luglio Soluzione esame di geometria - Ing. gestionale - a.a COGNOME... NOME... N. MATRICOLA... ISTRUZIONI

Appunti su Indipendenza Lineare di Vettori

Variabili aleatorie. continue. Discreto continuo

Vettori e matrici. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Motivazione: Come si fa? Matrici simmetriche. Fattorizzazioni di matrici speciali

Array e matrici. Università degli Studi di Milano. Laurea Specialistica in Genomica Funzionale e Bioinformatica. Giorgio Valentini

Software di calcolo numerico, analisi, statistica e simulazione. Un esempio pratico: Octave

Transcript:

Laboratorio Apprendimento Automatico Laurea Magistrale in Informatica Mirko Polato 14 novembre 2016

Python Perché python? Molti moduli per l analisi e la visualizzazione dei dati pre esistenti; Facile da imparare; Efficiente; Universale. 2 of 21

L ecosistema scientifico di python Numpy: computazione numerica (i.e., matrici multidimensionali); Scipy: funzioni numeriche di alto livello (i.e., regressione, ottimizzazione), strutture sparse; Matplotlib: visualizzazione 2D (e 3D) dei dati. 3 of 21

Numpy Importare il modulo numpy >>> import numpy as np l aggiunta dell alias np è ormai una convenzione universalmente accettata. 4 of 21

Array e inizializzazione Creazione array da lista di valori: >>> a = np.array([0, 1, 2, 3]) >>> a array([0, 1, 2, 3]) Creazione array da range: >>> a = np.array(range(4)) >>> a array([0, 1, 2, 3]) Creazione array specificandone il tipo di valori: >>> a = np.array(range(4), dtype=float) >>> a array([0., 1., 2., 3.]) 5 of 21

Matrici La creazione di una matrice è simile a quella di un array (che è in effetti una matrice colonna) dove la lista di valori è una lista di liste: >>> mat = np.array([[1,2,3], [4,5,6]], dtype=float) >>> mat array([[ 1., 2., 3.], [ 4., 5., 6.]]) 6 of 21

Inizializzazione matrici Esistono molte matrici standard offerte da numpy: >>> z = np.zeros((3,4)) #matrice 3x4 con tutti zeri >>> o = np.ones((3,4)) #matrice 3x4 con tutti uno >>> i = np.identity(4) #matrice 4x4 con tutti zeri e 1 sulla diagonale >>> e = np.eye(4, 1) #come identita ma con diagonale spostata 7 of 21

Array info Esistono diverse funzioni utili per ottenere informazioni sugli array: >>> mat = np.array([[1,2,3], [4,5,6]], dtype=float) >>> >>> mat.dtype #ritorna il tipo dei valori dtype( float64 ) >>> mat.ndim #ritorna il numero di dimensioni 2 >>> mat.shape #ritorna la forma della matrice (2,3) >>> len(mat) #ritorna il numero di righe 2 >>> mat.size #ritorna il numero di elementi 6 8 of 21

Modifica degli array Gli array si possono indicizzare (e modificare) come le liste: >>> a = np.array(np.arange(0, 1, 0.25)) >>> a[2] 0.5 >>> a[1:] array([ 0.25, 0.5, 0.75]) >>> a[2] = 6 >>> a array([ 0., 0.25, 6., 0.75]) E inoltre possibile modificarne la forma: >>> m = np.array([[0,1,2,3,5],[6,7,8,9,10]]) >>> m.shape (2,5) >>> m1 = m.reshape((5,2)) #ritorna un nuovo array!!! >>> m1.shape (5,2) 9 of 21

Altri metodi utili sum(): ritorna la somma degli valori; prod(): ritorna il prodotto degli valori; min(): ritorna il minimo valore; max(): ritorna il massimo valore; mean(): ritorna la media dei valori. Vedere anche var(), std(), argmin() e argmax(). 10 of 21

Operazione tra array Operazioni classiche: >>> a = np.array(range(10)) #vettore riga >>> b = np.ones((1,10)) #vettore riga >>> a+b #simile a-b array([[1., 2., 3., 4., 5., 6., 7., 8., 9., 10.]]) >>> a*b #simile a/b array([[0., 1., 2., 3., 4., 5., 6., 7., 8., 9.]]) Una delle operazioni non standard tra array (compatibili) più usata è il prodotto scalare: >>> np.dot(a, b.transpose()) #dot product array([ 45.]) Notare che b.transpose() è necessario perché il dot product si esegue tra vettore riga e vettore colonna. 11 of 21

Algebra lineare Numpy contiene moduli ultimi per l algebra lineare, come ad esempio linalg. >>> q = np.array([[4,2,0], [9,3,7], [1,2,1]], float) >>> np.linalg.det(q) #calcola il determinante -48.0 >>> evals, evec = np.linalg.eig(q) #autovalori e autovettori >>> >>> qinv = np.linalg.inv(q) #calcola l inversa >>> np.dot(q, qinv) #test array([[ 1.000000e+00, 0.000000e+00, -2.220446e-16], [ 0.000000e+00, 1.000000e+00, 0.000000e+00], [ 0.000000e+00, 0.000000e+00, 1.000000e+00]]) 12 of 21

Random Numpy offre inoltre il modulo random per la generazioni di numeri casuali: >>> np.random.random() #numero casuale tra [0,1] >>> 0.5305867556052941 >>> np.random.seed(17) >>> np.random.random() #numero casuale fissato dal seed 0.2946650026871097 Estrazioni di campioni da una popolazione: >>> random.sample(range(1000), 100) Si possono generare numeri casuali secondo distribuzioni fissate: >>> np.random.normal(0, 1, size=10) genera una sequenza di 10 numeri casuali secondo la distribuzione normale con µ = 0 e σ 2 = 1. 13 of 21

Scipy scipy.constants: costanti matematiche e fisiche; scipy.special: funzioni in uso in fisica matematica (e.g., coefficiente binomiale); scipy.integrate: metodi di integrazione numerica (e.g., trapezoidale, Simpson), integrazione di equazioni differenziali; scipy.optimize: metodi di ottimizzazione (minimi quadrati, gradiente, simulated annealing); scipy.linalg: estensione di numpy.linalg - soluzione di sistemi lineari, calcolo matriciale, decomposizione, fattorizzazione; scipy.sparse: gestione di matrici sparse. 14 of 21

Matplotlib E una libreria orientata agli oggetti per la creazione di grafici. In particolare noi useremo il modulo pyplot che fornisce un framework con interfaccia MATLAB-like. Importare il modulo: >>> import matplotlib.pyplot as plt ci riferiremo a pyplot con plt. 15 of 21

Creare un grafico Creare un semplice grafico: >>> x = np.array(range(50)) >>> y = x**2 >>> plt.plot(x,y) Il grafico è stato creato ora non resta che visualizzarlo: >>> plt.show() 16 of 21

Grafico con più curve E sufficiente aggiungere altri plot prima della visualizzazione: >>> x = np.array(range(50)) >>> y = x**2 >>> y1 = x**1.8 >>> plt.plot(x,y) >>> plt.plot(x,y1) >>> plt.show() I colori e gli stili vengono automaticamente scelti. 17 of 21

Abbellimento - 1 Iniziamo con il definire cosa vogliamo visualizzare: >>> x = np.linspace(-np.pi, np.pi, 256) >>> c, s = np.cos(x), np.sin(x) x è un array di 256 valori equidistanti nell intervallo [ π, π). c ed s saranno i corrispettivi valori di coseno e seno. Proviamo a plottare: >>> plt.plot(x, c) >>> plt.plot(x, s) >>> plt.show() Bello ma non bellissimo. 18 of 21

Abbellimento - 2 Proviamo a cambiare colore e stile delle curve: >>> plt.plot(x, c, color="blue", linestyle="-") >>> plt.plot(x, s, color="red", linestyle="--") >>> plt.show() Aggiungiamo la legenda in alto a sinistra: >>> plt.plot(x, c, color="blue", linestyle="-", label=" Seno") >>> plt.plot(x, s, color="red", linestyle="--", label=" Coseno") >>> plt.legend(loc= upper left ) >>> plt.show() Molto meglio!! 19 of 21

Abbellimento - 3 Altre funzioni utili per modificare i dettagli del grafico: xlim, ylim: modifica i limiti di visualizzazione per gli assi x e y; xticks, yticks: definisce i valori da visualizzare negli assi; xlabel, ylabel: aggiunge un etichetta agli assi; xscale, yscale: modifica la scala degli assi; title: aggiunge un titolo al grafico. 20 of 21

Miscellanea Altre funzionalità degne di nota: subplot: permette di mostrare più grafici all interno di una stessa immagine; matshow: metodo che visualizza il contenuto di una matrice secondo una codifica a colori; hist: visualizza un grafico a istogrammi. 21 of 21