Il 0% ha trovato utile questo documento (0 voti)
6 visualizzazioni39 pagine

Informatica Anonimo Standard

Il documento fornisce una panoramica sui concetti fondamentali dell'informatica e dei linguaggi di programmazione, spiegando cosa sono gli algoritmi e le loro caratteristiche. Viene descritto il processo di codifica degli algoritmi in programmi utilizzando linguaggi di programmazione, distinguendo tra linguaggi di alto e basso livello. Infine, si introducono variabili, operatori e costrutti fondamentali della programmazione, evidenziando l'importanza delle funzioni e dei diagrammi di flusso per la rappresentazione degli algoritmi.

Caricato da

vricc21
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
6 visualizzazioni39 pagine

Informatica Anonimo Standard

Il documento fornisce una panoramica sui concetti fondamentali dell'informatica e dei linguaggi di programmazione, spiegando cosa sono gli algoritmi e le loro caratteristiche. Viene descritto il processo di codifica degli algoritmi in programmi utilizzando linguaggi di programmazione, distinguendo tra linguaggi di alto e basso livello. Infine, si introducono variabili, operatori e costrutti fondamentali della programmazione, evidenziando l'importanza delle funzioni e dei diagrammi di flusso per la rappresentazione degli algoritmi.

Caricato da

vricc21
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

BIOMETEC

APPUNTI

INFORMATICA

Revisionato da: n4d00_


Un ringraziamento speciale a Anonimo per la
condivisione dei propri appunti.
Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

INTRODUZIONE AI LINGUAGGI DI PROGRAMMAZIONE

ti
Un algoritmo è l’insieme completo delle regole che permettono la risoluzione di un
determinato problema; è una qualsiasi procedura effettiva che indichi le istruzioni da seguire

n
per ottenere, a partire dai dati di cui si dispone (input), i risultati voluti (output).

pu
ALGORITMO – LE ISTRUZIONI
Osserviamo che la sequenza delle istruzioni che compongono un algoritmo è importante in
quanto le istruzioni vengono eseguite nella sequenza in cui sono scritte.

ap
Tipi di istruzione possono essere:
★​ Istruzioni operative («leggi un numero in input», «calcola la somma di due numeri»)
★​ Istruzioni di controllo decisionale («controlla se il numero è positivo» «controlla se
due numeri sono uguali»)
ec
★​ Istruzioni di controllo iterativo («esegui un certo blocco di istruzioni finché il valore
di una variabile è inferiore a 10»)
L’esecuzione di ogni singola istruzione è definita passo.
et
Un problema risolvibile mediante un algoritmo si dice computabile; non tutti i problemi sono
risolvibili, non tutto è computabile.
m

ALGORITMO – CARATTERISTICHE
Un algoritmo è una sequenza ordinata e finita di passi che produce un determinato risultato
in un tempo finito.
io

★​ Istruzioni univoche e non ambigue, non sono ammessi termini adatti a una
/B

macchina.
★​ Determinismo; fatto un passo, il successivo è uno solo, ben determinato.
★​ Alternative sono possibili, ma la scelta deve essere univoca.
★​ Numero finito di passi.
★​ Terminazione, l’esecuzione prima o poi deve finire e produrre il risultato in
0_

tempo finito.
Si descrive un algoritmo cercando di sintetizzare il più possibile la sua sequenza di passi.
La descrizione avviene mediante il diagramma di flusso o lo pseudo-codice
d0

CODIFICA DELL’ALGORITMO: IL PROGRAMMA


Un algoritmo scritto in un linguaggio naturale, non può essere eseguito direttamente da un
calcolatore. Perché lo sia, occorre codificare l’algoritmo in un linguaggio formale che il
n4

calcolatore sia in grado di interpretare ed eseguire.


Un programma è un algoritmo scritto in un linguaggio formale, che per questo motivo viene
detto linguaggio di programmazione.
Affinché una macchina riesca a comprendere ed eseguire i passi specificati da un algoritmo,
quest’ultimo deve essere prima codificato in un opportuno programma scritto utilizzando un
©

linguaggio di programmazione.

I LINGUAGGI DI PROGRAMMAZIONE
Un linguaggio di programmazione è una lingua che consente di fornire istruzioni (algoritmo)
a un calcolatore. Un programma è quindi un set di istruzioni che un computer segue per
completare un'attività.

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

Abbiamo 2 tipi di linguaggio:

ti
★​ Linguaggi di alto livello: si caratterizzano per un’alta astrazione e sono orientati “al

n
programmatore”, quindi il loro scopo è quello di essere più comprensibili per un uso

pu
più facile da parte degli sviluppatori.
Con il traduttore si passa a

★​ Linguaggi di basso livello: coincidono con il linguaggio macchina e forniscono poca

ap
o nessuna astrazione. Sono quindi orientati “alla macchina” e il loro scopo è quello di
essere direttamente eseguibili dal processore.

COMPONENTI DI UN LINGUAGGIO DI ALTO LIVELLO


★​ Alfabeto: definisce l’insieme di simboli sul quale possono essere costruiti i termini e
le frasi di linguaggio. ec
★​ Lessico: l’insieme di sequenze di simboli dell’alfabeto che costituiscono le parole del
linguaggio.
et
★​ Sintassi: definisce le frasi ben formate del linguaggio; la sintassi è costituita da regole
grammaticali.
★​ Semantica: definisce il significato delle frasi ben formate.
m

Uomo -> (pseudo codice o diagramma di flusso) -> algoritmo -> (linguaggio di alto livello) ->
programma -> (traduttore) -> linguaggio macchina -> (esecuzione) -> macchina.
io

TRADUTTORI
/B

Servono a generare software. Generano codice in linguaggio macchina a partire da codice


scritto in un linguaggio di programmazione ad alto livello (ad es. C++, Java).
Si distinguono in interpreti e compilatori

I LINGUAGGI DI PROGRAMMAZIONE
0_

I linguaggi di alto livello possono essere divisi in due macro categorie a seconda di come
essi comunichino con il processore.
d0

Linguaggi compilati (C++, Pascal, Cobol, Fortran)


I compilatori traducono un intero programma dal linguaggio umano al linguaggio macchina
della macchina prescelta.
La traduzione e l’esecuzione procedono separatamente, e al termine della compilazione è
n4

disponibile la versione tradotta del programma che è però specifica per quella macchina.
Per eseguire il programma basta avere disponibile la versione tradotta (non è necessario
ricompilare). È più veloce.

Linguaggi interpretati (R, Python, BASH, ... e Java)


©

Gli interpreti traducono ed eseguono immediatamente il programma istruzione per


istruzione. La traduzione e l’esecuzione procedono insieme, quindi al termine non vi è
alcuna versione tradotta del programma originale. Se si vuole rieseguire il programma
occorre anche ritradurlo.
È più semplice e flessibile, e per distribuire il programma si deve necessariamente
distribuire il codice sorgente, rendendo possibili operazioni di plagio.

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

CONCETTI DI BASE DELLA PROGRAMMAZIONE

ti
VARIABILI

n
Una variabile è una zona della memoria a cui è stato dato un nome, il computer conosce

pu
solo gli indirizzi della memoria. Il valore di una variabile può essere modificato tramite
un’istruzione di assegnamento.

★​ Posso, ad esempio usare la variabile a per contenere il valore 10 e la variabile b per

ap
il valore 5 per finire con il mettere la somma di a+b dentro la variabile c.

ISTRUZIONE DI ASSEGNAMENTO
Una variabile può essere pensata come un contenitore ed è caratterizzata da:
1.​ Il suo nome
ec
2.​ Il tipo di valore che può essere contenuto (numerico, testo, …)
3.​ Il suo valore (o contenuto) che può cambiare nel corso del programma
4.​ Un’espressione è una combinazione di operatori aritmetici, costanti e variabili che
et
può essere calcolata generando un singolo valore numerico.
Es.: ​ X, ​ X + 1, ​ X + (Y * 3).
m

★​ Il simbolo di assegnamento dipende dal linguaggio di programmazione, i R useremo


una freccia, mentre in Python si usa l’uguale
Variabile <- Espressione
io

Es.: ​ Z <-3; ​Z <-X + 3; ​ X <-X + 1.


/B

INIZIALIZZAZIONE DI UNA VARIABILE


L'inizializzazione di una variabile è l'operazione con cui si assegna un primo valore alla
variabile nel momento in cui la si crea. È come preparare una scatola (la variabile) e metterci
subito dentro qualcosa (il valore iniziale).
0_

Se non inizializziamo una variabile e proviamo a usarla, potremmo incontrare errori perché il
programma non sa quale valore utilizzare. È come cercare di usare una scatola vuota
aspettandosi di trovare qualcosa dentro.
d0

VARIABILE – TIPO DI DATO


Una variabile è come una scatola dove conservare dei dati, ma ogni scatola è progettata per
contenere un tipo specifico di dati. I tipi più comuni sono:
n4

★​ Numeri interi (Integer): Per numeri senza decimali (42, -7, 1000)
★​ Numeri decimali (Float/Double): Per numeri con la virgola (3.14, -0.5, 99.99)
★​ Testo (String, Char, Character): Per parole o frasi ("Ciao", "Pizza", "Via Roma 123")
★​ Booleani o logici (Boolean, logic): Per valori vero/falso (true, false)
★​ Liste/Array: Per conservare più valori insieme ([1, 2, 3], ["mela", "pera", "banana"])
©

★​ Matrici: Per conservare più valori insieme, in forma tabellare

È importante usare il tipo giusto per occupare la giusta quantità di memoria e permettere di
fare le operazioni corrette (non si può moltiplicare del testo!)

In linguaggi come R e Python il tipo di dato non viene dichiarato prima, la variabile assume il
tipo in base al valore che gli viene assegnato (assegnazione implicita del tipo di dato).

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

Se successivamente nel programma si prova ad assegnare un valore di un altro tipo sarà

ti
necessario fare una conversione, che non sempre è ammessa.

n
OPERATORI

pu
Quando si scrive un programma sarà necessario utilizzare degli operatori, che possono
essere di tre tipi:
1.​ Operatori aritmetici (servono per i calcoli matematici)
2.​ Operatori relazionali (servono a confrontare valori e restituisce true o false)

ap
3.​ Operatori logici o booleani (Servono a combinare più condizioni relazionali, con
risultato booleano (AND, OR, NOT))

ec
et
m
io
/B
0_
d0

COSTRUTTI FONDAMENTALI
I costrutti fondamentali in informatica sono le strutture base che permettono di controllare il
flusso di esecuzione di un programma.
n4

I principali costrutti sono tre:


1.​ Sequenza, è la semplice esecuzione di istruzioni una dopo l'altra e le istruzioni
vengono eseguite nell'ordine in cui sono scritte
2.​ Selezione (IF-THEN-ELSE), permette di eseguire istruzioni diverse in base a una
condizione
©

3.​ Iterazione (cicli), permette di ripetere delle istruzioni più volte, e può essere while
(finché una condizione è vera) o for (per un numero definito di volte).

Questi costrutti sono fondamentali perché:


★​ La sequenza definisce l'ordine base delle operazioni
★​ La selezione permette di prendere decisioni
★​ L'iterazione evita di ripetere lo stesso codice più volte

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

Tutti i programmi, anche i più complessi, sono costruiti combinando questi elementi base in

ti
modi diversi.

n
FUNZIONE

pu
Una funzione (detta anche routine, subroutine, procedura, sottoprogramma o metodo) è un
particolare costrutto sintattico che permette di raggruppare una sequenza di istruzioni in un
unico blocco, espletando così una specifica operazione.
Essa contiene tutte le istruzioni necessarie a raggiungere uno scopo in modo che a partire

ap
da determinati dati in input si ottiene l’output desiderato.
Quando si vuole eseguire una funzione diciamo che la stiamo chiamando (richiamando,
invocando o attivando)
Una funzione può essere chiamata ogni volta che si vuole con una singola istruzione, in
questo modo si evita di riscrivere tante volte un blocco di istruzioni che viene usato spesso
nel programma. ec
In generale per ogni funzione si definisce un nome, gli input (chiamati parametri od
et
operandi), e l’output (o tipo di ritorno).
Il corpo della funzione sono le istruzioni che sono eseguite quando questa viene chiamata.
m

DIAGRAMMI DI FLUSSO

I diagrammi di flusso permettono di descrivere in modo grafico le azioni che costituiscono un


io

algoritmo e il loro flusso di esecuzione.


Ogni azione elementare è rappresentata da un blocco, ed esistono 3 tipi di blocchi.
/B

1)​ Istruzioni di inizio e fine.


2)​ Operazioni di lettura (input) o scrittura (output).
3)​ Istruzioni imperative (azioni oppure operazioni, tipicamente il risultato di una
operazione viene assegnata a una variabile).
0_

CONNETTORI
I singoli diagrammi devono essere uniti tramite i connettori, e l’esecuzione delle istruzioni
deve essere fatta sequenzialmente, quindi seguendo i connettori.
d0

Quando si scrive l’algoritmo bisogna fare molta attenzione alla direzione del flusso di
esecuzione.

VARIAZIONI NEL FLUSSO DI ESECUZIONE


n4

Ci sono dei momenti in cui il flusso di esecuzione può scegliere tra diverse direzioni;
In genere, questi salti sono subordinati al verificarsi di una condizione (che può risultare vera
o falsa); si parla di istruzioni condizionali.
Permettono anche di impostare i cicli/loop.
©

I diagrammi a blocchi sono poco pratici, soggetti a errori, illeggibili se di notevole


complessità e per ovviare a tali inconvenienti si adotta lo pseudo-codice.

NOTAZIONE LINEARE STRUTTURATA


Tre costrutti fondamentali:
★​ Sequenza
★​ Selezione

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

★​ Iterazione

ti
Inoltre, esiste un unico punto d’ingresso e un unico punto d’uscita.

n
TEOREMA (Böhm-Jacopini): I tre costrutti fondamentali della NLS sono sufficienti a

pu
descrivere qualunque algoritmo.

INDENTAZIONE
L’indentazione è l’inserimento di una certa quantità di spazio vuoto all’inizio di una riga di

ap
codice. Ogni riga viene indentata di un certo numero di spazi che dipende dalla sua
posizione all’interno della struttura logica del programma e questo rende il programma più
leggibile.
In certi linguaggi di programmazione l’indentazione è obbligatoria, e in ogni caso è sempre
raccomandata.

INTRODUZIONE A R
ec
R è un linguaggio di programmazione usato particolarmente per l'analisi statistica dei dati in
et
molti settori, tra cui l'econometria, la finanza, la ricerca biomedica e l'epidemiologia.

PACCHETTI R
m

R è un linguaggio modulare, costituito da pacchetti (package) che forniscono uno strumento


semplice ed efficiente per gestire collezioni di funzioni e di dati (librerie) e la relativa
documentazione.
io

Ogni pacchetto è ampiamente documentato con informazioni ed esempi, alcuni pacchetti di


base vengono caricati automaticamente, altri pacchetti devono essere installati
/B

manualmente. Le principali repository di pacchetti sono CRAN e Bioconductor.

Per installare un pacchetto da CRAN basta utilizzare il comando:


[Link]("package")
Per installare pacchetti da Bioconductor bisogna utilizzare la funzione install del pacchetto
0_

biocManager, installiamo prima BiocManager: [Link]("BiocManager") e poi


installiamo il pacchetto desiderato: BiocManager:install("package")
d0

Per poter utilizzare un pacchetto precedentemente installato bisogna caricarlo in memoria


tramite la funzione library(): library("nomePacchetto") una volta caricato tutte le funzioni
definite al suo interno sono richiamabili dall’utente. La funzione [Link]() consente di
visualizzare l’elenco delle funzioni disponibili in un pacchetto specificando come parametro
n4

una stringa: [Link]("package:nomePacchetto")

R è un linguaggio di programmazione, R Studio invece è un’interfaccia user-friendly che


permette di utilizzare R.
©

RSTUDIO
Rstudio è un ambiente di sviluppo integrato (IDE) per R, e racchiude in un unico programma
diverse funzioni che consentono tra le altre cose di:
★​ Scrivere e salvare programmi (script) nel linguaggio R
★​ Scrivere delle espressioni e valutarne il corrispondente valore, mediante un prompt
dei comandi
★​ Visualizzare lo spazio di tutte le variabili definite (environment)

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

★​ Consultare pagine di aiuto per comprendere cosa fa e cosa restituisce una funzione

ti
di un pacchetto
★​ Visualizzare plot e grafici prodotti da uno script R.

n
pu
BASI DEL LINGUAGGIO
Le istruzioni (o comandi) in R possono essere eseguiti in due modi:
★​ Digitando sul prompt dei comandi il comando desiderato (premendo INVIO per
eseguirlo)

ap
★​ Eseguendo l’istruzione nell’editor di testo + pulsante Run

Ogni istruzione deve essere separata dalla successiva o usando il ; oppure andando a capo
(scelta consigliata).
Il carattere # è utilizzato all’interno di un programma o di uno script per indicare che ciò che
ec
segue nella stessa riga è un commento e quindi non verrà eseguito dal calcolatore.

ASSEGNAMENTO DI VALORI A VARIABILI


et
Le variabili rappresentano contenitori di valori.
Per convenzione, in R si usa la freccia per assegnare valori a variabili e l’uguale per
dichiarare dei nomi (es: parametri all’interno di una funzione che si vuole richiamare).
m

Se si richiama una variabile per nome, ma a questa non è mai stata definita in precedenza R
restituisce un errore.
R è un linguaggio case-sensitive, ovvero sensibile alle maiuscole, e il nome di una
io

variabile non può contenere alcuni caratteri, detti speciali, quali «!», «"», «$» e «%».
Il punto «.» non è un carattere speciale e l’utilizzo è incoraggiato quando una variabile ha un
/B

nome complesso («[Link]» è preferibile a «numberOfElements»)

TIPI DI DATI PRIMITIVI IN R


★​ Numeric: dati numerici, che comprendono:
• Integer: numeri interi (ad es. 17, 25);
0_

• Double: numeri con la virgola (ad es. 1.7, 22.13);


• Complex: numeri complessi (ad es. 1+2i).
★​ Character: stringhe di caratteri (ad es. «home», «the end»);
d0

★​ Logical: valori booleani (TRUE/T e FALSE/F).

TIPI DI DATI AVANZATI


★​ Vector: vettore, ovvero una sequenza di dati dello stesso tipo (ad es. vettore di interi,
n4

vettore di stringhe);
★​ Factor: sequenze di stringhe o interi, simili ai vettori e usati per rappresentare valori
categoriali.
★​ Matrix: matrice, ovvero una tabella a due dimensioni (righe e colonne) con dati dello
stesso tipo (ad es. matrice di interi, matrice di valori booleani);
©

★​ Array: tabella multidimensionale (con tre o più dimensioni) con dati dello stesso tipo.
★​ List: lista di dati che possono essere di tipo diverso (ad es. una lista formata da un
booleano, da un vettore di interi e da una matrice di booleani);
★​ [Link]: una tabella, chiamata data frame, in cui ogni colonna contiene i valori di
una certa variabile e ogni riga (chiamata anche osservazione) contiene un set di
valori, uno per ogni colonna. Le colonne possono avere dati eterogenei tra loro
(interi, stringhe, booleani, ecc...).

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

VALORI SPECIALI

ti
Possono essere presenti già nei dati (ad es. in una matrice o un data frame) o originarsi in
seguito a calcoli effettuati.

n
★​ Valore NULL: viene restituito quando un’espressione o una funzione restituiscono un

pu
valore indefinito.
★​ Valore NA: indica un valore mancante.
★​ Valore NaN: sta per “Not A Number” e indica un valore numerico indefinito, che può
avere origine da operazioni aritmetiche (ad es. la divisione 0/0).

ap
★​ Valori Inf and –Inf: indicano +∞ o −∞ e si originano quando occorre memorizzare un
numero troppo grande o troppo piccolo per il calcolatore oppure in seguito a
operazioni aritmetiche (ad es. 3/0).

CONTROLLO E CONVERSIONE DEL TIPO DI DATO


ec
★​ Le funzioni del tipo [Link]() permettono di verificare se una variabile è di tipo
numerico, booleano, ecc... restituendo TRUE oppure FALSE.
★​ Funzioni analoghe permettono di verificare se una variabile ha un valore speciale.
et
★​ Le funzioni del tipo [Link]() possono essere utilizzate per provare a convertire
(laddove ha senso) un tipo di dato in un altro (ad es. la stringa «34» in numero 34).
★​ La funzione class() restituisce il tipo di dato (es. «character», «matrix») di una
m

variabile.
[Link]() o [Link]();
[Link]() o [Link]();
io

[Link]() o [Link]()
VISUALIZZAZIONE DI DATI
/B

La visualizzazione del contenuto di una variabile può essere fatta in due modi:
1) Scrivendo sul prompt dei comandi il nome della variabile;
2) Usando View(nomeVariabile) per visualizzare il contenuto in stile foglio Excel (in RStudio
viene visualizzato in un riquadro a parte nel pannello in alto a sinistra (l’editor di testo).
0_

ENVIRONMENT DI RSTUDIO
L’environment di RStudio (presente nel pannello in alto a destra) è lo spazio che contiene le
variabili definite dall’utente o caricate in memoria e che sono accessibili da quest’ultimo, e
d0

per ogni variabile è indicato il tipo.


E’ diviso in tre sezioni:
★​ «Data»: contiene i data frame e le liste creati dall’utente o caricati in memoria;
★​ «Values»: contiene tutti gli altri tipi di variabili create o caricate in memoria;
n4

★​ «Functions»: contiene la lista delle funzioni (che vedremo a breve) definite


dall’utente.

Per le liste e i data frame, una freccia a sinistra consente di visualizzarne i tipi di dati
contenuti.
©

GESTIONE DELLE VARIABILI


Il comando ls() consente di visualizzare l’elenco delle variabili definite nell’environment.
Il comando rm(nomeVariabile) permette di rimuovere una variabile dall’environment.

OPERATORI IN R
★​ Operatori aritmetici:

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

• + (somma);

ti
• - (sottrazione);
• * (moltiplicazione);

n
• / (divisione);

pu
• ^ (potenza);
• %/% (divisione intera tra due numeri, che restituisce il quoziente della divisione);
• %% (resto della divisione intera tra due numeri)
• sqrt() (Radice quadrata)

ap
• exp() (Esponenziale)
• log() (Logaritmo, di default base 10, diverse basi possono essere specificate)

★​ Operatori relazionali:
• == (uguale);
• != (diverso);
• < (minore);
ec
• > (maggiore);
et
• <= (minore o uguale);
• >= (maggiore o uguale);
m

Ogni volta che si applica un operatore relazionale si ottiene come risultato un valore
booleano TRUE o FALSE, che possono essere successivamente convertiti in 1 e 0,
rispettivamente.
io

★​ Operatori logici:
/B

• & (AND logico);


• | (OR logico);
• ! (NOT logico).

COSTRUTTI FONDAMENTALI
0_

COSTRUTTO IF-THEN-ELSE
Permette di eseguire una o più istruzioni a patto che una condizione logica specificata
tramite la parola chiave «if» sia verificata.
d0

Opzionalmente, tramite la parola chiave «else» si possono specificare più istruzioni da


eseguire se la condizione non è verificata.

Più costrutti IF-THEN-ELSE possono essere concatenati per specificare


n4

blocchi di istruzioni da eseguire a seconda che una condizione sia verificata


o meno.
La sintassi del costrutto IF-THEN-ELSE in R è:

CICLO WHILE
©

Simile al FOR, in ciclo WHILE permette di eseguire


ripetutamente un blocco di istruzioni finché una condizione logica è
soddisfatta. La sua sintassi è:

CICLO FOR
Permette di eseguire un blocco di istruzioni ripetutamente.

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

Per indicare il numero di volte che il blocco viene eseguito si utilizza una variabile di

ti
appoggio, la variabile contatore, che assume valori diversi all’interno di un vettore di numeri,
partendo dal primo valore della sequenza fino all’ultimo.

n
La sintassi del for è:

pu
ap
FUNZIONI
Le funzioni in R servono a strutturare, organizzare e riutilizzare il codice.
Scrivere una funzione offre una serie di vantaggi:
ec
★​ Astrazione: le funzioni in R permettono di raggruppare un gruppo di istruzioni
necessarie a completare un sotto task all’interno del nostro programma.
Tale gruppo di istruzioni sarà generico e applicabile a diversi input.
★​ Riutilizzabilità: le funzioni R consentono di eseguire ripetutamente un determinato
et
blocco di codice senza doverlo riscrivere ogni volta. Così facendo si risparmia tempo
e si riduce la tendenza agli errori.
m

★​ Modularità: le funzioni R permettono di suddividere un progetto di grandi dimensioni


in piccole parti più gestibili.
io

La sintassi delle funzioni in R è coerente e segue un modello chiaro ed è costituita da diversi


componenti principali:
• Nome della funzione: indica solitamente il compito svolto dalla funzione.
/B

• Parametri: le variabili che servono per elaborare le istruzioni dalla funzione stessa. Una
funzione può accettare un numero di parametri a piacere (e anche nessuno).
• Corpo della funzione: contiene il codice che viene eseguito all’interno della funzione ed è
racchiuso fra parentesi graffe. Questo codice può accedere ai parametri ed elaborarli.
• Valore restituito: la maggior parte delle funzioni in R restituisce un valore che rappresenta il
0_

risultato del calcolo per mezzo di return(). Questo valore restituito può essere usato per
utilizzare il risultato della funzione in altre parti del codice.
d0
n4

Per richiamare la funzione è sufficiente indicare tra parentesi, nell’ordine di apparizione, il


valore da assegnare ai parametri, quest’ordine può essere alterato indicando esplicitamente
©

nella chiamata della funzione a quale parametro un valore fa riferimento.

VALORI DI DEFAULT PER I PARAMETRI


Nella definizione della funzione è possibile indicare un valore di default per un parametro.
In questo caso il parametro diventa opzionale ed è possibile richiamare la funzione senza
specificare un valore per il parametro opzionale.

10

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

R dispone di una vasta raccolta di funzioni preinstallate che sono disponibili e utilizzabili in R

ti
senza doverle definire in precedenza.
Il comando help() può essere utilizzato per avere informazioni (prese dal manuale di R) su

n
una funzione preistallata di R. In alternativa è possibile usare «?» Seguito dal nome della

pu
funzione.
Se non si conosce il nome esatto della funzione, ma solo una parte di esso oppure si
vogliono cercare informazioni su tutte le funzioni che contengono una certa stringa, si può
usare la funzione [Link]().

ap
Nel pannello Help di RStudio (in basso a destra) apparirà il contenuto del manuale sulla
funzione.

ALCUNE FUNZIONI MATEMATICHE PREDEFINITE


★​ sum(): prende uno o più valori e ne fa la somma
★​ prod(): prende uno o più valori e ne fa il prodotto
ec
★​ sqrt(): calcola la radice quadrata di un numero
et
★​ exp(): calcola la potenza n-esima del numero di Nepero e
★​ log(): calcola il logaritmo naturale di un numero, a meno che non si definisca
esplicitamente la base
m

★​ sin() e cos(): calcolano seno e coseno di un angolo


★​ max() e min(): massimo e minimo tra uno o più valori
★​ round(): approssima un valore decimale al più vicino valore intero
io

★​ sign(): restituisce 1 o -1 a seconda che il segno di un numero sia positivo o negativo.


★​ ceiling(): approssima un valore decimale x al più piccolo intero maggiore di x
/B

★​ floor(): approssima un valore decimale x al più grande intero minore di x

CARICAMENTO DI PACCHETTI
Alcune funzioni sono disponibili all’interno di pacchetti R esterni, che devono essere prima
richiamati e caricati in R.
0_

Per caricare un pacchetto in R, si usa la funzione library(), e una volta caricato tutte le
funzioni definite al suo interno sono richiamabili dall’utente.
La funzione [Link]() consente di visualizzare l’elenco delle funzioni disponibili in un pacchetto
d0

(specificando come parametro una stringa del tipo «package:nomePacchetto»)

VETTORI E FACTORS
VETTORI
n4

Un vettore (vector) è una sequenza ordinata di oggetti dello stesso tipo (es. numeri, stringhe,
valori booleani).
★​ Il modo più semplice per creare un vettore è concatenare i suoi elementi usando la
funzione di concatenazione c(), mentre per creare una sequenza di interi consecutivi
il modo migliore è usare «:».
©

★​ La funzione seq() permette di creare sequenze regolari di numeri secondo


determinati criteri.
★​ Il parametro «by» indica l’incremento da seguire nella costruzione della sequenza.
★​ Il valore N per il parametro «length» indica che i valori della sequenza vanno scelti in
modo che l’intervallo di valori specificato risulti diviso in N sotto-intervalli di uguale
lunghezza.

11

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

★​ La funzione rep() consente di creare un vettore a partire da ripetizioni (più o meno

ti
complesse) di singoli elementi e/o intere sequenze di elementi.

n
Qualsiasi operazione aritmetica o logica su un vettore produce come risultato un nuovo

pu
vettore in cui l’operazione è applicata a ciascun elemento del vettore.

FUNZIONI DI UTILITÀ SU VETTORI


★​ length(): restituisce la lunghezza, ovvero il numero di elementi, del vettore.

ap
★​ all(): verifica se tutti gli elementi di un vettore soddisfano una condizione.
★​ any(): verifica se almeno un elemento di un vettore soddisfa una condizione.
★​ max(), min(): calcola il massimo e il minimo di un vettore
★​ sum(), prod(): calcola la somma e il prodotto degli elementi di un vettore
★​ unique(): restituisce il vettore senza elementi duplicati.
ec
★​ table(): restituisce un vettore con le frequenze di ciascun elemento nel vettore di
partenza.
★​ rev(): restituisce il vettore capovolto, con gli elementi, nell’ordine dall’ultimo al primo.
et
CAMPIONAMENTO DI ELEMENTI
La funzione sample() consente di campionare N elementi (parametro quantità «size») da un
m

vettore.
★​ Di default il campionamento è senza ripetizioni (lo stesso elemento non può essere
campionato più volte), ma impostando il parametro «replace» a TRUE il
io

campionamento avviene con ripetizioni.


★​ Il parametro «prob» consente di associare probabilità a ciascun elemento (1, 2, 3).
/B

Elementi con peso maggiore avranno una probabilità più alta di essere campionati.

PARAMETRO «[Link]»
Se un vettore numerico contiene valori NA di default molte delle funzioni viste falliscono
producendo in output il valore NA.
0_

Per risolvere il problema degli NA, molte delle funzioni predefinite in R contengono un
parametro «[Link]» che, impostato a TRUE, consente di effettuare il calcolo escludendo i
valori NA.
d0

ORDINAMENTO DI VETTORI
sort() restituisce un vettore con gli elementi ordinati dal più piccolo al più grande.
Impostando il parametro «decreasing» a TRUE è possibile ordinare dal più grande al più
n4

piccolo, questa operazione non modifica il vettore di partenza, per ordinarlo occorre
riassegnare il risultato di sort() al vettore stesso.

OPERAZIONI INSIEMISTICHE TRA VETTORI


★​ intersect(): prende due vettori e restituisce un nuovo vettore con gli elementi comuni.
©

★​ union(): prende due vettori e restituisce un nuovo vettore con gli elementi presenti
nell’uno o nell’altro (senza ripetizioni di valori).
★​ setdiff(): prende due vettori e restituisce un nuovo vettore con gli elementi presenti
nel primo ma non nel secondo vettore.

12

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

ESTRAZIONE DI ELEMENTI DA UN VETTORE

ti
L’accesso a un elemento del vettore avviene per
posizione (da 1), specificata all’interno di

n
parentesi quadre [ ].

pu
E’ possibile anche selezionare più elementi
specificando tra parentesi quadre [ ] un vettore
di posizioni (mediante funzione di
concatenazione c(), oppure i «:», oppure seq()).

ap
Il risultato è un vettore con gli elementi nelle
posizioni richieste.

Un metodo alternativo per selezionare elementi sulla base di una condizione booleana
consiste nell’usare la funzione which() che restituisce un vettore con le posizioni nel vettore
degli elementi che soddisfano la condizione. ec
Usando il segno meno «-» è possibile selezionare tutti gli elementi di un vettore eccetto
et
quelli specificati tra parentesi quadre [ ].
All’interno delle parentesi quadre [ ] è anche possibile specificare una condizione che avrà
come effetto quello di restituire il vettore degli elementi che soddisfano la condizione.
m

I metodi [Link]() e [Link]() hanno un funzionamento analogo a which() e


restituiscono la posizione nel vettore del massimo e del minimo di un vettore. Nel caso i
io

massimi o i minimi siano più di uno, la posizione del primo massimo o minimo osservato nel
vettore viene restituita.
/B

Dato un vettore A di N elementi, l’operatore speciale %in%


restituisce un vettore di N valori booleani che indicano, per
ogni elemento x di A, se x è presente o meno in un
secondo vettore B.
0_

Usando la notazione posizionale tramite parentesi quadre, possiamo quindi ottenere gli
elementi del primo vettore che sono presenti anche nel secondo vettore.
d0

MODIFICA DEGLI ELEMENTI DI UN VETTORE


La notazione posizionale mediante parentesi quadre [ ] può essere usata anche per
modificare uno o più elementi di un vettore esistente. Nel fare ciò, è importante che il
n4

vettore a sinistra dell’assegnamento (quello contenente i valori da modificare) e il vettore a


destra dell’assegnamento (quello contenente i nuovi valori) abbiano lo stesso numero di
elementi, altrimenti R genera un errore.

VETTORI NAMED
©

Agli elementi di un vettore possono essere associati dei nomi (named vectors), tramite la
funzione names(). In un named vector, i nomi sono chiavi che possiamo usare per accedere
agli elementi, e la funzione unname() consente di rimuovere i nomi associati.

13

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

FACTOR

ti
I factor sono speciali vettori in cui gli elementi sono trattati come livelli, e sono ordinati,
quindi a ciascun livello è associato un numero (1 associato al primo livello, 2 al secondo,

n
ecc...).

pu
La funzione factor() consente di trasformare un vettore in factor.

GESTIONE DEI LIVELLI DI UN FACTOR


★​ nlevels() consente di sapere il numero di categorie o livelli di un factor:

ap
★​ La funzione levels() restituisce un vettore con i livelli del factor.
★​ E’ possibile cambiare, tramite assegnamento a levels(), l’ordine dei livelli.

MATRICI
Una matrice (matrix) è una tabella di elementi dello stesso tipo (es. interi, stringhe,
booleani). ec
Ciascun elemento occupa una riga e una colonna ben precisa della matrice.
La funzione matrix() consente di creare una matrice a partire da un vettore di elementi e i
et
parametri «nrow» e «ncol» permettono di specificare il numero di righe e colonne che la
matrice deve avere.
Di default, gli elementi del vettore vengono sistemati nella matrice colonna per colonna,
m

partendo dalla prima colonna.


Per sistemare gli elementi riga per riga nella matrice, anziché colonna per colonna, basta
impostare il parametro «byrow» a TRUE.
io

Inoltre, per la creazione di una matrice a partire da un vettore, è sufficiente specificare una
/B

sola delle due dimensioni (numero di righe o numero di colonne), l’altra viene derivata
automaticamente.
In alternativa, una matrice può essere creata per concatenazione di vettori per riga (tramite
la funzione rbind() o per colonna tramite funzione cbind(), a patto che i vettori abbiano la
stessa lunghezza e lo stesso tipo di dati. Possono essere usate per concatenare una
0_

matrice con un vettore oppure due matrici, allo scopo di aggiungere righe o colonne.

ASSEGNARE NOMI A RIGHE E COLONNE


d0

Alle righe e alle colonne di una matrice possono essere associati dei nomi, che, come nel
caso dei vettori, possono essere usati per accedere agli elementi della matrice.
Le funzioni rownames() e colnames() possono essere usate sia per assegnare nomi a righe
e colonne, sia per accedere alla lista dei nomi.
n4

ESTRAZIONE DI ELEMENTI DA UNA MATRICE


La notazione posizionale già vista per i vettori si applica alle matrici per accedere a singoli
elementi o intere porzioni della matrice.
Nel caso delle matrici abbiamo due indici, uno per le righe e uno per la colonne, separati da
©

«,».
E’ possibile lasciare non specificato l’indice di riga (o di colonna) se si vogliono selezionare
tutte le righe (o tutte le colonne) di una matrice nella selezione, mentre usando vettori di
indici, è possibile estrarre molteplici righe o colonne.
Il segno «-» è usato per escludere righe e/o colonne dalla selezione.

14

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

La selezione può essere fatta anche specificando condizioni booleane che devono

ti
soddisfare tutti gli elementi della matrice, gli elementi di una o più righe o gli elementi di una
o più colonne. Per specificare condizioni su righe o colonne della matrice bisogna prima

n
estrarle dalla matrice e poi sul risultato dell’estrazione applicare la condizione booleana.

pu
Se le righe e le colonne hanno un nome associato, possiamo accedere a esse tramite i loro
nomi anziché le loro posizioni.

FUNZIONI DI UTILITÀ SU MATRICI

ap
★​ nrow() ed ncol() restituiscono il numero di righe e colonne della matrice.
★​ dim() restituisce un vettore con entrambe le informazioni.
★​ length() restituisce il numero di elementi della matrice.
★​ diag() restituisce un vettore con gli elementi della diagonale.
★​ t() calcola la trasposta della matrice, ovvero la matrice in cui l’elemento alla posizione
ec
[i,j] viene scambiato con l’elemento alla posizione [j,i].
★​ La funzione solve() calcola l’inversa della matrice (se la matrice è invertibile).
et
OPERAZIONI SU MATRICI
Le funzioni max(), min(), sum(), mean() già viste per i vettori si possono applicare anche alle
matrici, restituendo il massimo, il minimo, la somma e la media degli elementi.
m

Altre operazioni invece operano separatamente sulle righe o le colonne della matrice:
rowSums() e colSums() ritornano un vettore con le somme degli elementi di ciascuna riga o
ciascuna colonna e analogamente, rowMeans() e colMeans() restituiscono un vettore con le
io

medie riga per riga o colonna per colonna.


/B

L’operatore «*» effettua il prodotto puntuale (ovvero tra elementi della stessa riga e della
stessa colonna) tra due matrici.
Il prodotto matriciale (ovvero riga per colonna) si esegue con l’operatore «%*%».

LISTE
0_

Le liste sono collezioni di oggetti dello stesso tipo o di tipo diverso.


Il comando list() consente di creare una lista a partire dall’elenco dei suoi oggetti, a cui è
associato un numero, che indica la sua posizione nella lista.
d0

Nell’output della lista, le doppie parentesi quadre [[...]]


racchiudono la posizione dell’oggetto.

Tramite la funzione list(), è possibile associare dei nomi a


n4

ciascun oggetto della lista, da utilizzare come chiavi per


accedere a tali elementi.
In questo caso, nell’output della lista la notazione
posizionale [[...]] è sostituita dalla notazione con «$» seguito
dal nome dell’oggetto.
©

15

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

Per estrarre un elemento da un oggetto della lista occorre prima estrarre l’oggetto dalla lista,

ti
facendo riferimento alla posizione o al nome dell’oggetto e poi usare le singole per accedere
all’elemento.

n
pu
L’estrazione degli oggetti della lista può essere fatta in due modi:
★​ • Usando le doppie parentesi quadre e indicando all’interno la posizione nella lista o il
nome dell’oggetto (se l’oggetto ha un nome associato);
★​ • Usando il dollaro «$» seguito dal nome dell’oggetto (solo nel caso in cui all’oggetto

ap
è associato un nome).

Le stesse notazioni possono essere usate per modificare o aggiungere elementi alla lista.
Per rimuovere un oggetto dalla lista basta assegnargli il valore NULL.

FUNZIONI DI UTILITÀ SULLE LISTE ec


★​ length() restituisce il numero degli oggetti della lista.
★​ names() restituisce un vettore con i nomi associati agli oggetti.
et
★​ unlist() consente di riunire, se possibile, tutti gli elementi di tutti gli oggetti di una lista
in unico vettore (per elementi dello stesso tipo).
m

Se gli oggetti della lista hanno un nome associato, il vettore


restituito in output è chiamato con nomi ottenuti
concatenando il nome dell’oggetto e la posizione
io

dell’elemento nell’oggetto.
/B

DATA FRAME
I data frame sono tabelle contenenti dati di vario tipo in
ciascuna colonna.
Le righe vengono chiamate osservazioni, mentre le colonne vengono chiamate anche
variabili.
0_

★​ La funzione [Link]() consente di creare un data frame a partire da vettori che


formeranno le colonne del data frame.
A ogni colonna è possibile associare un nome, in caso contrario R le nomina come
d0

«V1», «V2», ecc… Anche le righe di un data frame possono essere identificate con
nomi univoci.
★​ La funzione per assegnare nomi alle righe di un data frame è rownames().
n4

E’ possibile creare un data frame inizialmente vuoto


usando metodi come character(), numeric(), logical(),
factor() che creano vettori, rispettivamente, di stringhe,
numerici, di booleani e factor senza elementi.
E’ possibile, quindi, creare un data frame a partire da
©

una matrice usando la funzione di conversione


[Link]().

R contiene, nei pacchetti di base, alcuni data frame già


pronti, uno di questi è il database «iris».
La funzione data() consente di visualizzare l’elenco dei
data frame presenti in un pacchetto o caricare uno o

16

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

più data frame. Richiamata senza parametri consente di visualizzare la lista dei dataframe

ti
già disponibili nei pacchetti base di R

n
ES: Visualizza i dataframe contenuti nel pacchetto «rpart»: > data(package="rpart")

pu
ESTRAZIONE DI ELEMENTI DA [Link]
La selezione di elementi da un data frame si basa sulla stessa notazione posizionale già
vista per vettori, matrici e array. Se le colonne hanno nomi associati, si può far riferimento a

ap
essi tramite «[..]» Oppure «$».

★​ L’estrazione di elementi può avvenire anche sulla base di condizioni booleane sui
valori di una o più colonne, al fine di operare una selezione delle righe.
★​ La notazione posizionale col segno «-» può essere usata per rimuovere righe e
ec
colonne dal data frame, a patto di memorizzarne il risultato in una variabile.
★​ Per rimuovere una colonna basta assegnargli valore NULL.
et
AGGIUNGERE RIGHE AL [Link]
Come per le matrici, la funzione rbind() serve ad aggiungere righe a un data frame, passato
m

come primo parametro alla funzione:


★​ Se il secondo parametro è un vettore, una nuova riga viene aggiunta con le
informazioni del vettore (a patto che abbia lunghezza pari al numero di colonne e dati
io

coerenti con i tipi delle colonne);


★​ Se il secondo parametro è anch’esso un data frame, tutte le righe del secondo data
frame vengono aggiunte in coda al primo.
/B

Nuove colonne possono essere aggiunte a un data frame in due modi:


★​ Per aggiungere una singola colonna, si può usare «$»;
★​ Per aggiungere una o più colonne, si può usare la funzione cbind() passando come
secondo argomento un vettore (con nome della nuova colonna associato) o un intero
0_

data frame.

FUNZIONI DI BASE SU DATA FRAME


d0

Le funzioni length() ed ncol() restituiscono il numero di variabili del data frame:


★​ La funzione nrow() restituisce il numero di osservazioni del data frame
★​ dim() ritorna un vettore con numero di righe e numero di colonne del data frame
★​ names(), oppure colnames(), permette di visualizzare o modificare i nomi delle
n4

variabili del data frame.


★​ head() e tail() ritornano, rispettivamente, le prime e le ultime 6 righe e sono utili per
capire come è fatto il DF.
Il numero di righe può essere modificato in entrambi i casi tramite il parametro «n».
©

LETTURA E SCRITTURA SU FILE


PERCORSO DEI FILE E CARTELLA DI LAVORO
Nelle funzioni di lettura e scrittura è richiesto il nome del file, eventualmente preceduto da un
percorso all’interno del file system.
Il file viene cercato a partire dalla cartella di lavoro corrente della sessione R, seguendo il
percorso eventualmente indicato dall’utente.

17

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

Per visualizzare la cartella di lavoro corrente si usa il metodo getwd(), mentre per modificarla

ti
si usa setwd()

n
LETTURA DA FILE

pu
I CSV (Comma Separated Values) sono file di testo semplici che contengono elenchi di dati.
Questo formato consente di esportare facilmente i dati e importarli in altri programmi, per
poterli visualizzare e riutilizzare.

ap
Per leggere questo tipo di dati si può usare la funzione [Link]().
I parametri principali sono:
★​ «file»: nome del file di testo da cui leggere i dati;
★​ «sep»: carattere separatore dei dati nel file (ad es. « », «\t», «,»);
★​ «header»: booleano che indica se la prima riga del file è una riga di intestazione con i
nomi delle colonne; ec
Per salvare il contenuto di una matrice o di un data frame su file di testo, il metodo migliore è
et
usare la funzione [Link]().
I parametri principali sono:
★​ «x»: matrice o data frame da scrivere sul file;
m

★​ «file»: nome del file di testo su cui scrivere i dati;


★​ «sep»: carattere separatore dei dati nel file (ad es. « », «\t», «,»);
★​ «quote»: booleano che indica o meno se scrivere i dati sul file racchiudendoli tra
io

doppi apici o meno (di default quote=TRUE, dunque i dati sono racchiusi tra doppi
apici);
/B

★​ «[Link]»: booleano che indica se includere o meno nel file (di default sono
inclusi) anche i nomi delle righe (se presenti) o gli indici di riga (se i nomi delle righe
non sono presenti).

Per salvare su file in formato CSV, si può usare la funzione [Link](), che ha gli stessi
0_

parametri di [Link]() dove però il parametro «sep» è impostato di default al valore «,».

GRAFICI IN R
d0

In R abbiamo tre modi per generare grafici:


★​ Usando le funzioni di base
★​ Usando il pacchetto ggplot2
★​ Usando plotly (grafici interattivi)
n4

PLOT IN R CON LE FUNZIONI DI BASE


R contiene una serie di funzioni di base per disegnare grafici (plot) di vario tipo, la funzione
generica per creare grafici è plot().
Ogni volta che un grafico viene creato, viene visualizzato in RStudio nel riquadro «Plot» in
©

basso a destra.

Altre funzioni specializzate sono:


★​ points() per aggiungere punti;
★​ lines() per aggiungere linee;
★​ hist() per istogrammi;
★​ pie() per i grafici a torta;

18

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

★​ barplot() per grafici a barre;

ti
★​ boxplot() per i box plot (diagrammi a scatola e baffi).

n
La funzione plot() permette di creare diversi tipi di grafici a seconda del numero e della

pu
tipologia di parametri passati.
I due parametri principali sono:
★​ «x»: vettore contenente i valori dell’asse x del grafico;
★​ «y»: vettore contenente i valori dell’asse y del grafico.

ap
A seconda del tipo di vettore passato a «x», il parametro «y» può non essere specificato.
Gli altri parametri della funzione plot() consentono di personalizzare il plot e ogni nuovo plot
creato con la funzione plot() va a sovrascrivere il precedente.

GRAFICO DI DISPERSIONE CON PLOT() ec


Passando solo un vettore numerico, plot() produce un grafico di dispersione, in cui i valori
sull’asse x (denominato «Index») rappresentano le posizioni degli elementi nel vettore.
et
m
io
/B

Anche passando due vettori numerici, la funzione plot() produce uno scatter plot.
0_

In questo caso, i valori dell’asse x sono quelli del primo vettore, mentre quelli dell’asse y
sono quelli del secondo vettore.
d0

GRAFICO A LINEE CON PLOT()


Di default, con vettori numerici plot() disegna un grafico con punti, per trasformarlo in un
grafico con linee oppure in un grafico con linee e punti basta modificare il parametro «type»
che indica la tipologia di plot («l» per disegnare linee, «b» per disegnare sia punti che linee).
n4
©

19

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

GRAFICO A BARRE CON PLOT()

ti
Passando solo un factor, plot() produce un grafico a barre contenente, per ogni livello, il
numero di volte che il livello è presente nel factor.

n
pu
ap
BOXPLOT CON PLOT()
ec
et
Il diagramma a scatole e baffi (boxplot)
permette di visualizzare la distribuzione di
uno o più campioni di dati, evidenziando in
m

particolare i valori estremi (minimo e


massimo) e i quartili.
io

Passando come primo parametro un factor e


come secondo parametro un vettore
numerico, plot() produce una serie di
/B

boxplot, uno per ogni livello del factor,


mostrando la distribuzione dei valori
numerici appartenenti a ciascun livello.
0_

PARAMETRI DI PLOT()
Tra i parametri più importanti di plot():
★​ «type»: tipologia di grafico («l»=solo linee, «p»=solo punti, «b»=entrambi);
d0

★​ «col»: colore del grafico;


★​ «pch»: tipo di punto (ad es. pallino vuoto, pallino pieno, asterisco);
★​ «lty»: tipo di linea («dashed»=tratteggiata, «solid»=continua);
n4

★​ «lwd»: spessore della linea;


★​ «xlab» e «ylab»: nomi degli assi;
★​ «xlim» e «ylim»: vettori con minimo e massimo valore sugli assi x e y;
★​ «main»: titolo del grafico.
©

FUNZIONI LINES() E POINTS()


Le funzioni lines() e points() permettono di sovrapporre un nuovo grafico a punti, a linee
oppure a linee e punti ad uno o più già esistenti.

Il primo grafico va creato con plot(), i successivi da sovrapporre vanno aggiunti con la
funzione points() o lines().

20

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

L’unica differenza tra le due funzioni è che di default lines() crea un grafico a linee, mentre

ti
points() un grafico a punti, ma può essere variato mediante il parametro «type».
I parametri grafici sono gli stessi della funzione plot().

n
pu
ap
ec
et
ISTOGRAMMI

La funzione hist() permette di


m

disegnare un istogramma a partire


da un vettore numerico, con le
frequenze dei valori negli intervalli
io

rappresentati da ciascuna barra


dell’istogramma.
/B

Il parametro «breaks» consente di


modificare il numero di barre da
visualizzare.
0_

Il parametro «probability», se
impostato al valore TRUE, tratta le
frequenze dei valori come frequenze relative, ovvero probabilità.
d0

I parametri grafici sono gli stessi della funzione plot().

GRAFICI A TORTA
n4

La funzione pie() permette di creare un grafico a torta partendo


da un vettore di frequenze.
I colori delle sezioni possono essere modificati tramite il
parametro «col» e «labels» consente di visualizzare nel grafico
©

anche delle etichette relative ai valori.

GRAFICI A BARRE CON BARPLOT()


La funzione barplot() consente di creare grafici a barre, ma più
avanzati, poichè prende in input un vettore con le frequenze dei
livelli.

21

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

Il parametro «horiz», impostato a TRUE, consente di visualizzare le barre in orizzontale, con

ti
il parametro «beside» permette di leggerle affiancate.
E’ possibile modificare i colori delle barre tramite il parametro «col» e i nomi relativi ad ogni

n
barra col parametro «[Link]». Tramite «legend» impostiamo una legenda del grafico, in

pu
modo da associare i valori ai corrispondenti colori.

La funzione barplot() può essere usata anche per creare grafici a barre rispetto a due
variabili, passando come dati una matrice di frequenze anziché un vettore.

ap
La funzione table() applicata a più vettori restituisce il numero di elementi per ciascuna
combinazione di valori dei vettori, e passando il risultato a barplot() otteniamo il grafico
desiderato.

BOXPLOT CON BOXPLOT()


ec
La funzione boxplot()
et
crea un boxplot a
partire da un data
frame.
m

★​ Il primo
parametro («formula»)
è una formula del tipo
io

«c1 ~ c2» dove c1 è il


nome di una colonna
/B

contenente valori
numerici e c2 è il
nome di una colonna di tipo factor.
★​ Il secondo parametro («data») è il data frame che contiene le colonne c1 e c2.
★​ Il parametro opzionale «names» consente di assegnare nomi diversi ai valori
0_

sull’asse x.
Il risultato è un grafico con diversi boxplot, uno per ogni livello del factor.
d0

AGGIUNGERE UNA LEGENDA AD UN GRAFICO


legend() è la funzione generica per aggiungere una legenda a qualsiasi plot R e va applicata
subito dopo aver creato il grafico.
Le informazioni che non possono mancare sono:
n4

★​ La posizione della legenda, da specificare tramite «x» e «y» che indicano la


posizione del vertice in alto a sinistra del rettangolo che racchiude la legenda, oppure
solo tramite «x» assegnando una stringa che indica dove piazzare la legenda, ad es.
«topright» oppure «bottom, ecc...;
★​ Le voci della legenda, tramite parametro «legend»;
©

★​ Simboli (tramite «pch»), linee (tramite «lty» e «ltw») e, se presenti, i loro colori
(tramite «col») solo per grafici a linee e punti;
★​ Colori di riempimento (tramite parametro «fill») solo per boxplot, grafici a barre,
grafici a torta;

SALVATAGGIO DI UN GRAFICO SU FILE

22

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

Per salvare un grafico su file bisogna:

ti
1) Richiamare il metodo opportuno in base all’estensione del file, e indicare percorso e nome

n
del file: Tutti questi metodi consentono di regolare le dimensioni dell’immagine tramite

pu
«height» e «width».
2) Creare il grafico (mediante plot() o una delle funzioni specializzate). Il grafico non verrà
mostrato nel pannello in basso a destra, ma direttamente salvato sul file indicato;
3) Usare il comando [Link]() per chiudere la connessione al file e rilasciare la risorsa

ap
occupata.

PYTHON

COMMENTI IN PYTHON
ec
I commenti di Python permettono di inserire del testo all'interno del codice.
Vengono utilizzati per descrivere il codice e per renderlo più comprensibile e fa comodo
avere dei punti di riferimento.
et
Per inserire un commento in Python, basta utilizzare il carattere # all'inizio di una riga: tutto
ciò che lo segue (sulla stessa riga) non verrà eseguito.
m

ASSEGNAZIONE E FUNZIONE type()


Una variabile è un contenitore a cui viene dato un nome che può contenere un valore,
l'inserimento del valore avviene tramite l’assegnazione, rappresentato dal simbolo
io

dell'uguale =.
La funzione type() ci restituisce il tipo di dato contenuto in una variabile (equivalente a
/B

class() in R).

TIPI DI DATO
DATI PRIMITIVI
★​ int: numeri interi, sia positivi che negativi, senza parte frazionaria (es. 2, -3, 10, …)
0_

★​ float: numeri decimali, ovvero numeri con una parte frazionaria (ad es. 2.5, -3.14, …)
★​ str: stringhe di caratteri (ad es. «home», «the end»)
★​ bool: valori logici booleani (TRUE oppure T e FALSE oppure F)
d0

DATI STRUTTURATI
Sono tipi di dato che organizzano un insieme di dati in una certa modalità, possono essere
composti da dati semplici o primitivi (int, float, bool e str).
n4

Ciascun tipo di dato strutturato è caratterizzato dalla sua modalità di accesso e di modifica
dei singoli valori registrati.

I più importanti tipi strutturati di Python sono:


★​ Liste
©

★​ Tuple
★​ Set
★​ Dizionari

VALORI SPECIALI
Possono essere presenti già nei dati o originarsi a seguito di calcoli effettuati.
★​ Valore NoneType: rappresenta l'assenza di valore

23

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

★​ Valore float('nan') o [Link]: rappresenta un risultato matematico indefinito (Es:

ti
0/0) , qualsiasi operazione con NaN risulta in NaN. Si usa [Link]() per
verificarlo.

n
★​ Valore float('inf') o [Link] (Infinito): rappresenta l'infinito positivo

pu
★​ Valore -float('inf’): rappresenta l'infinito negativo.
Entrambi si originano quando occorre memorizzare un numero troppo grande o
troppo piccolo per il calcolatore oppure a seguito di operazioni aritmetiche (ad es.
3/0)

ap
★​ Valore NotImplemented: Usato nelle classi per indicare che un'operazione non è
supportata
★​ Valori NA (Not Available) e NULL: Python nativamente non ha questi valori. In
pandas esiste [Link] per dati mancanti e in numpy esiste [Link] per valori mancanti
numerici

LA FUNZIONE ISINSTANCE()
ec
Questa funzione viene utilizzata per verificare se un oggetto è di un certo tipo o se è una sua
et
sottoclasse.
La sintassi è: isinstance(object, type)
Dove object è l'oggetto da verificare e type è il tipo o la classe da confrontare. è molto utile
m

quando è necessario verificare il tipo di un oggetto prima di eseguire un'operazione su di


esso.
io

STRINGHE
Le stringhe sono valori di tipo testuale, cioè un insieme di caratteri inseriti tra apici o doppi
/B

apici, numeri e simboli compresi.


Per inserire le virgolette usiamo il carattere di escape: backslash (\)
Per concatenare due stringhe usiamo l’operatore +, ma non è compatibile per somme tra
interi e stringhe. È necessario avere elementi dello stesso tipo.
Per convertire un valore in stringa ad esempio, usiamo la funzione str().
0_

OPERATORI ARITMETICI
d0
n4
©

24

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

OPERATORI RELAZIONALI

ti
Ogni volta che si applica un operatore relazionale si ottiene come
risultato un valore booleano TRUE o FALSE.

n
Questi rappresentano sostanzialmente i valori binari 0 ed 1.

pu
OPERATORI LOGICI (O BOOLEANI)
L'Algebra di Boole è quel ramo dell'Algebra in cui non si
utilizzano numeri ma solamente due valori detti Valori di Verità

ap
che mediante i suoi operatori permette di effettuare calcoli logici.
Il tipo di dato booleano ha solo due valori possibili, e questi sono
True e False, che rappresentano sostanzialmente i valori binari 0
ed 1.

ec
et
m
io
/B

COSTRUTTI FONDAMENTALI

INDENTAZIONE
In Python l’indentazione è obbligatoria, e non rispettarla comporta la comparsa di errori.
0_

L’indentazione è l'aggiunta di 4 spazi o tab (pressioni del tasto corrispondente nella tastiera)
usati per delimitatore della nuova porzione di codice (quindi per dividere le istruzioni in
blocchi).
d0

L'ISTRUZIONE ELIF

L'istruzione elif, che significa ELse IF, altrimenti


n4

se. Questo permette di aggiungere tanti possibili


blocchi di controllo quanti se ne hanno bisogno.
L'istruzione elif viene eseguita solo se la sua
espressione di controllo restituisce True e l'if o
©

eventuali elif precedenti hanno restituito False.

CICLO WHILE
Il ciclo while ci permette di eseguire un blocco di
codice finché una determinata condizione è e resta
True.

25

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

L'ISTRUZIONE BREAK E CONTINUE

ti
L'istruzione break serve per terminare un ciclo while prematuramente: non appena
quest'espressione viene letta e processata all'interno del ciclo, Python blocca il loop

n
istantaneamente.

pu
L'istruzione continue invece di interrompere il ciclo fa saltare tutto il codice dopo l'istruzione
e fa ripartire Python dalla prima riga del ciclo.

ap
CICLO FOR E LA FUNZIONE RANGE

Il for loop permette di ripetere


l'esecuzione di una determinata
porzione di codice più volte. La
ec
differenza col ciclo while, è che invece
di eseguire il blocco di codice
interessato finché la condizione di
et
controllo resta True, il ciclo for esegue
questa sezione di programma per un
numero specifico di cicli.
m

In Python, quando si usa un ciclo for,


la variabile specificata viene
io

inizializzata dal ciclo stesso. Ad ogni


iterazione del ciclo, questa assume il
/B

valore relativo nell'iterabile. Il ciclo for


si occupa sia della creazione che
dell'assegnazione del valore alla
variabile ad ogni passo.
0_

La funzione range() ci permette di impostare un intervallo di esecuzione tanto ampio quanto


il numero che le passiamo come parametro, senza però includere il numero passato in sé.
Di default inizia a contare a partire da 0.
d0

Una volta che si entra all'interno del loop, il codice viene eseguito in loop fino a che non si
arriva alla fine dell'intervallo di range(), momento in cui il ciclo termina.
La funzione range ci permette di impostare oltre a un punto di inizio dell'intervallo anche un
punto di fine personalizzato, e un passo di avanzamento.
n4

FUNZIONI
Le funzioni sono quindi create per fare in modo di ridurre il numero di volte che un pezzo di
codice deve essere scritto in un programma e per mantenere il nostro software ordinato.
Per definire una funzione utilizziamo la parola chiave def seguita dal nome che vogliamo
©

dare a questa funzione.


Il nome viene seguito da una coppia di parentesi, e all'interno delle parentesi metteremo i
parametri, ovvero delle variabili necessarie al funzionamento della funzione. Non tutte le
funzioni avranno bisogno di parametri, in quel caso lasciamo le parentesi vuote.

Talvolta è necessario avere dei parametri opzionali per le nostre funzioni, ovvero fare in
modo che queste funzionino con o senza l'aggiunta di valori in questi specifici parametri.

26

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

Per rendere questo possibile, possiamo associare a questi parametri un valore di default.

ti
L'ISTRUZIONE RETURN

n
L’istruzione return in Python è obbligatoria.

pu
Se proviamo ad assegnare il risultato della funzione a una variabile otterremo un il tipo di
dato nullo di Python, il NoneType.
Per fare in modo che la nostra funzione restituisca il risultato dobbiamo utilizzare il comando
return. Questo ci permetterà anche di poter assegnare il risultato della funzione a una

ap
variabile.

IL DOCSTRING
Una docstring è una stringa di testo che viene inserita all'inizio di una funzione che serve a
documentare il codice.
ec
A differenza dei commenti, le docstring sono considerate parte del codice e vengono
utilizzate per generare la documentazione automaticamente: questo significa che possono
essere utilizzate per generare documentazione HTML e PDF. Le docstring si scrivono
et
inserendo il testo all’interno di stringhe multiriga definite con tripli apici “”” “””
Le docstring possono essere utilizzate anche per documentare i parametri di una funzione.
m

Quando si utilizza una funzione che ha una docstring, è possibile visualizzarla attraverso la
funzionalità IntelliSense dell'editor. Questo significa che quando si digita il nome della
funzione, verrà mostrato un suggerimento che include la docstring della funzione, compresi i
io

parametri e il valore che viene restituito.


/B

VARIABILI GLOBALI E VARIABILI LOCALI


Possiamo quindi richiamare e modificare i valori delle variabili utilizzandone il nome.
Abbiamo inoltre parlato di funzioni, e abbiamo visto che anche qui possiamo e siamo
incoraggiati ad utilizzare le variabili.
In ogni linguaggio di programmazione il codice e quindi anche le variabili, possono essere
0_

"salvati" in due ambienti diversi chiamati local scope e global scope, si può pensare a questi
due ambienti come a dei contenitori distinti in cui vengono definite e assegnate le variabili,
un contenitore globale e uno locale.
d0

Quando uno di questi contenitori viene distrutto, anche le variabili in esso salvate vengono
dimenticate.

Un ambito locale viene creato ogni volta che una funzione viene chiamata, e distrutto dopo
n4

che la funzione restituisce un valore con return, come se ogni volta che una funzione viene
processata, Python le fornisse un contenitore.
Possono quindi esistere tanti Local Scope quante funzioni abbiamo in esecuzione.
Le variabili dichiarate all'interno di qualsiasi funzione, sono chiamate variabili locali.
Al contrario delle globali, è possibile accedere alle variabili locali solamente dall'ambito
©

locale della funzione in cui sono contenute, quindi non è possibile accedervi dal global scope
o dal local scope di un'altra funzione.

Dall'altro lato invece, esiste e può esistere un unico Ambiente Globale, che viene creato
automaticamente da Python all'avvio del programma e distrutto alla chiusura del
programma.

27

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

È l'ambito principale e tutte le variabili che vengono dichiarate qui, quindi all'esterno di una

ti
funzione, sono chiamate proprio variabili globali, e restano pertanto in vita dall'avvio del
programma "principale" fino alla sua chiusura.

n
È possibile accedere alle variabili globali da qualsiasi parte del programma, mentre è

pu
possibile accedere alle variabili locali solamente dall'ambito locale della funzione in cui sono
contenute.
È possibile utilizzare le variabili di una funzione solo se queste ci vengono passate dal return
della funzione.

ap
I MODULI DELLA STANDARD LIBRARY
Finora abbiamo visto che ciascun programma che scriviamo può usare una serie di funzioni
integrate di Python, in aggiunta a queste Python dispone di una collezione di moduli pronti
all'uso in quella che viene chiamata la Standard Library.
ec
Ciascun modulo è come una libreria (un insieme) di funzioni scritte da altri sviluppatori,
realizzate per svolgere compiti comuni come ad esempio la generazione di numeri casuali o
funzioni matematiche.
et
COME IMPORTARE UN MODULO
Ci sono tre diversi modi per importare un modulo nei nostri script di Python.
m

★​ Il primo consiste semplicemente nel chiamare il modulo tramite il comando import.


Con questo tipo di import è possibile accedere alle funzioni e alle classi del modulo
io

nel codice utilizzando la dot notation: nome_modulo.nome_oggetto


★​ Il secondo consiste nell’importare solo specifiche classi, variabili e funzioni dal
/B

modulo utilizzando from nome_modulo import nome_oggetto in tal caso possiamo


utilizzare ciò che abbiamo importato chiamando gli oggetti direttamente per nome.
★​ Il terzo consiste nel richiamare tutte le funzioni, le classi e le variabili incluse nel
modulo tramite l’asterisco, e anche in questo caso non sarà necessario riscrivere il
nome del modulo.
0_

IL MODULO RANDOM
Questo modulo fornisce una serie di funzioni per generare numeri casuali.
d0

I numeri ottenuti con random possono essere utili in molte situazioni, per esempio quando è
necessario simulare eventi, testare algoritmi o selezionare elementi casuali da una lista.

★​ Il metodo random() genera un numero casuale di tipo float compreso tra 0 e 1


n4

★​ Il metodo randint(a, b) Genera un numero intero casuale compreso tra i valori a e b


(con a e b inclusi).
★​ Il metodo choice(seq) seleziona un elemento casuale dalla sequenza seq, che può
essere una lista, una tupla o una stringa.
©

IL MODULO MATH
Questo modulo è utilizzato per eseguire operazioni matematiche e la maggioranza delle sue
funzioni restituiscono valori di tipo float.
★​ Il metodo sqrt(x) restituisce la radice quadrata di x
★​ Il metodo pow(x, y) restituisce x elevato alla potenza di y
★​ Il metodo exp(x) restituisce l’esponenziale di x, cioé e elevato x

28

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

★​ I metodi ceil(x) e floor(x), la prima restituisce l’arrotondamento per eccesso di x (il più

ti
piccolo numero intero maggiore o uguale a x), la seconda restituisce
l’arrotondamento per difetto di x (il più grande numero intero minore o uguale a x).

n
pu
LE LISTE
Il tipo di dato Lista di Python, ci permette di raggruppare più elementi tra di loro.
Le liste in Python possono contenere al loro interno diversi tipi di dato e i vari elementi
vengono ordinati in base ad un indice proprio della lista, in modo da semplificarne l'accesso.

ap
Per dichiarare una lista usiamo una coppia di parentesi quadre, e i vari elementi contenuti
sono separati da una virgola.

A ciascun elemento è associato un numero che ne rappresenta la posizione nell'elenco.


È importante però notare che in Python le liste iniziano ad indice 0.
ec
Talvolta può dimostrarsi utile accedere agli elementi della lista partendo dalla fine: in questo
caso possiamo usare indici negativi, partendo da -1.
et
Per ottenere un insieme di elementi contenuti in una lista, possiamo usare lo slicing: questo
ci permette di ottenere una "sottolista" di elementi a partire da due indici.
Possiamo impostare questo indice variabile anche in modo da farlo iniziare, o terminare, con
m

l'inizio oppure la fine della lista, utilizzando i due punti :

LISTE E CICLI FOR


io

Per navigare il contenuto di una lista possiamo usare ad esempio i cicli for.
/B

DOPPI INDICI
Le liste sono così versatili che volendo possono contenere anche altre liste.

I METODI DELLE LISTE


0_

Per lavorare con le liste


di Python usiamo alcune
specifiche istruzioni e
d0

delle funzioni "speciali"


chiamate metodi.
n4

La particolarità dei metodi è che vengono richiamati su dati di un certo tipo, dunque tipi di
dato diversi avranno a disposizione metodi diversi.

★​ Volendo aggiungere metodi singoli elementi ad una lista usiamo il metodo append().
©

★​ Mentre per aggiungere elementi ad una lista da una seconda lista usiamo il metodo
extend().
★​ Gli indici delle liste sono fondamentali perché identificano la posizione degli elementi
al loro interno. Per ottenere l'indice di uno specifico elemento possiamo usare il
metodo index().
★​ Possiamo sostituire un elemento passando un nuovo valore all'indice dell'elemento
che intendiamo sostituire, oppure cancellarlo tramite la funzione del.

29

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

★​ Con pop() rimuoviamo l'ultimo elemento della lista, mentre con remove() possiamo

ti
rimuovere elementi a partire dal loro valore.
★​ Possiamo usare gli operatori in e not in per verificare se un elemento o un carattere

n
sia presente in una lista o stringa.

pu
TIPI DI DATO AVANZATO
TUPLE
Anche il tipo tuple di Python rappresenta un insieme di elementi, definiti stavolta utilizzando

ap
una coppia di parentesi tonde, oppure senza alcuna parentesi ma separati da virgola.
Come per le liste, possiamo accedere agli elementi delle tuple utilizzando l'indice.

La grande differenza tra i tipi di dato tuple e list è che le tuple sono immutabili. Per questo
motivo non possiamo usare l'istruzione del per rimuovere elementi.

SET
ec
I set permettono di creare collezioni di elementi, e vengono definiti con una coppia di
et
parentesi graffe, e i valori sono separati da virgola.
La caratteristica fondamentale dei set è che non possono contenere duplicati al loro interno,
possiamo aggiungere nuovi elementi col metodo add, ma provare ad aggiungere elementi
m

già presenti non funzionerà.

DIZIONARI
io

I dizionari (dict) sono simili al tipo di dato lista, ma nei dizionari ad ogni elemento è associata
una chiave che potrà essere usata per accedere al valore dell'elemento.
/B

I dizionari di Python vengono definiti utilizzando una coppia di parentesi graffe che contenga
al suo interno delle coppie chiave / valore separate da due punti.
Le chiavi nei dizionari sono proprio il corrispettivo degli indici nelle Liste: usiamo le chiavi per
richiamare i valori ad esse associati.
E’ possibile aggiungere nuovi elementi al dizionario o sostituirne di già esistenti.
0_

Per verificare se una chiave è presente o meno all'interno di un dizionario possiamo


utilizzare gli operatori in e not in, e per rimuovere una coppia chiave-valore possiamo
d0

utilizzare l'istruzione del.

Esistono tre metodi associati ai dizionari che ci consentono di ottenere in output una lista di
tutte le chiavi presenti, o di tutti i valori presenti, o di entrambi allo stesso tempo: keys(),
n4

values() ed items().
Per ottenere una lista di tutte le chiavi presenti nel nostro dizionario usiamo il metodo
dict_keys.

Per ottenere una lista di tutti i valori presenti usiamo invece values(), e utilizziamo il metodo
©

items() per ottenere una lista di tutte le coppie chiavi-valore presenti, sotto forma di oggetti.
Se abbiamo bisogno di una lista vera e propria possiamo utilizzare anche qui la nostra
funzione list().
Possiamo inoltre utilizzare questi metodi in combinazione con un ciclo for.

Qualora provassimo a richiamare un valore associato a una chiave che non esiste nel nostro
dizionario otterremmo un errore, e nello specifico un'eccezione del tipo KeyError, che se non

30

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

gestita causerà il crash del programma (cioè le istruzioni successive che erano state

ti
previste non verranno più eseguite). I dizionari di Python dispongono di un metodo specifico
ideato proprio per situazioni come queste: il metodo get(), che sfrutta la chiave per il valore

n
che stiamo cercando e quella da fornire qualora non lo trovassimo.

pu
Ci saranno dei momenti in cui potremmo avere la necessità di creare una coppia
chiave-valore, qualora una chiave non sia già presente e associata a un valore nel
dizionario.

ap
Il metodo setdefault() cerca la chiave all'interno del dizionario, e se la chiave non esiste, crea
una coppia chiave-valore col valore da noi passato.

TIPI DI DATO NON NATIVI


Esistono altri due tipi di dato molto utili: le matrici e i dataframe. Questi però non sono nativi,
ma vengono definiti in moduli esterni (numpy e Pandas). ec
Il Python Package Index è un deposito di software per Python.
et
Contiene al suo interno centinaia di migliaia di progetti scritti ed è possibile scaricare diverse
librerie gratuitamente.
I moduli del Python Package Index vengono installati da terminale, tramite un programma
m

chiamato PIP, presente nel pacchetto di installazione di Python.


I vari moduli possono essere installati in due aree: a livello di sistema o in un ambiente
virtuale.
io

MATRICI
/B

Le matrici sono tabelle di due dimensioni i cui elementi sono tutti dello stesso tipo.
Ci sono sostanzialmente due modi in Python di rappresentare matrici: come liste di liste,
oppure con la libreria esterna numpy.
0_
d0

★​ Per creare una matrice usando una lista di liste possiamo ad esempio considerare
una matrice 3x2, quindi, per accedere la prima riga['a','b'], accediamo all’elemento
n4

all’indice 0 della lista esterna m, per accedere il secondo elemento 'b' della prima riga
['a','b'] usiamo invece indice 1.
In una matrice fatta da lista di liste, per prendere le dimensioni della matrice,
possiamo usare normali operazioni su lista.
©

La lunghezza delle righe possiamo ottenerla con: len(m), e la lunghezza delle


colonne possiamo ottenerla con: len(m[0]).

★​ Se il pacchetto numpy non è stato installato lo si può installare tramite pip e


importare la libreria nello script.
In numpy si crea tutta la matrice in una volta, riempiendola di zeri. Per fare questo si
utilizza il metodo zeros().

31

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

L’oggetto mat risultante sarà di tipo [Link].

ti
Il contenuto di mat è rappresentato come una lista di liste, ma in realtà i dati sono
strutturati in una sequenza lineare che permette a Python di accedere ai numeri in

n
modo molto più rapido.

pu
NOTA: non si fa distinzione tra vettori e matrici. Sia per oggetti 1xn che per oggetti nxn il tipo
sarà sempre ndarray.

Analogamente, per creare una matrice riempita di 1 usuamo ones().

ap
E per creare una matrice riempita di un numero k usiamo il metodo full().

Per conoscere le dimensioni di una matrice utilizziamo l’attributo shape, senza le


parentesi tonde.
Per memorizzare le dimensioni in variabili separate possiamo assegnare due variabili
al risultato di [Link]. ec
Viceversa, per creare un ndarray da una lista di liste, è possibile utilizzare il metodo
et
array().

Per accedere ai dati o sovrascriverli si utilizza la notazione con le quadre, con


m

l’importante differenza che in Numpy è consentito scrivere entrambi gli indici dentro
le stesse quadre, separati da una virgola.
io

Poichè le matrici possono contenere solo elementi tutti di uno stesso tipo se
proviamo ad assegnare un carattere a una matrice di numeri interi la conversione
/B

fallisce e viene restituito un errore.

Per estrarre dati da un ndarray possiamo usare le slice, con la notazione già usata
per le liste normali. La differenza questa volta è che possiamo estrarre sotto-matrici
indicando due range tra le stesse quadre.
0_

Invece per estrarre l’intera riga o colonna si utilizzano i due punti : Ad esempio, per
estrarre tutta la prima righa scriveremmo mat[0, : ] e tutta la seconda colonna
scriveremo mat[ : , 1]
d0

Possiamo anche specificare un passo come terzo parametro dopo i due punti.

Modificare una matrice ottenuta come slice di un’altra matrice significa modificare anche la
n4

matrice originale!

A differenza delle slice di liste che producono sempre nuove liste, per questioni di
efficienza con le slice di numpy otteniamo solo una vista sui dati originari, che
significa che scrivendo nella vista andiamo a scrivere anche nella matrice originale.
©

Con Numpy bisogna fare attenzione a quando usiamo l’operatore di assegnazione =,


se facciamo una assegnazione nella nuova variabile otterremo solo un puntatore
all’array originale.
Se volessimo una copia completa dell’array, dovremmo usare il metodo copy().

32

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

Numpy è estremamente flessibile, e permette di usare gli array quasi con le stesse

ti
operazioni dei vettori e matrici che conosciamo dall’algebra. Ad esempio, è possibile
sommare due vettori elemento per elemento utilizzando il classico simbolo di somma

n
‘+’, per ottenere la moltiplicazione matriciale dell’algebra classica bisogna utilizzare

pu
l’operatore @, facendo attenzione ad avere matrici di dimensioni compatibili

ap
ec
et
m
io
/B

Numpy fornisce diverse funzioni da effettuare sulla


matrice, come la somma di tutti gli elementi o la
0_

ricerca del massimo o del minimo

Supponiamo di voler ottenere un array che soddisfi


una specifica condizione, che riporteremo nelle
d0

parentesi quadre della matrice.


Restituisce una matrice di booleani, che sono veri
quando la corrispondente cella nella matrice
n4

originale soddisfa la condizione che abbiamo imposto.


Mettendo poi questa espressione all’interno di mat[ ] otteniamo i valori della
matrice originaria che soddisfano la condizione.

Possiamo combinare più condizioni usando le congiunzioni logiche and e or,


©

ma nel contesto di numpy gli operatori logici and e or vanno scritti usando
rispettivamente i simboli & e |.

Se volessimo trovare gli indici di quelle celle bisogna usare la funzione


[Link], passandogli come parametro la condizione espressa nello stesso
linguaggio usato prima. Possiamo anche usare [Link] per sostituire i valori

33

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

nelle celle che soddisfano una condizione con altri valori che saranno indicati

ti
in due matrici extra ma e mb.
Nel caso la condizione sia soddisfatta, verrà preso un corrispondente valore

n
da ma, altrimenti da mb.

pu
TIPI DI DATO AVANZATO
Pandas è una libreria per la manipolazione di dati in formato sequenziale o tabellare, che

ap
può essere installata tramite da PyPI tramite pip.

Alcuni vantaggi principali di Pandas sono:


★​ Caricamento e salvataggio di formati standard per dati tabellari, quali CSV, TSV, file
Excel e formati per database.
ec
★​ Semplicità nella esecuzione di operazioni di indicizzazione e aggregazione di dati.
★​ Semplicità nella esecuzione di operazioni numeriche e statistiche.
★​ Semplicità nella visualizzazione dei risultati delle operazioni.
et
Pandas può anche essere installato con un set di parametri opzionali per abilitare
determinate funzioni.
m

Pandas si importa come qualsiasi altro modulo. La sintassi comune è import panda as pd.
Dove as pd permette di riferirsi al modulo con l'abbreviazione pd.
io

Pandas fornisce due tipi di dati molto utili, le Series ed i DataFrame. Series rappresenta dati
sequenziali a una dimensione e DataFrame rappresenta dati a due dimensioni, in forma
/B

tabellare.
Ogni colonna di un DataFrame è una Series.

SERIES DI PANDAS
Una Series è un vettore mono-dimensionale i cui elementi sono etichettati con un index.
0_

Una Series può essere creata tramite la funzione [Link]() o passando un dizionario (le
chiavi diventano gli indici e i valori i dati) o specificando sia dati che indici, oppure passando
solo i dati (gli indici saranno sequenziali a partire da 0).
d0

Si può accedere ad una Series sia tramite indice (come nei dizionari) che fungono da
etichette associate utilizzabili per estrarre porzioni di Series (singolarmente o in lista), sia
tramite posizione (come nelle liste).
n4

OPERAZIONI SU SERIES
Le operazioni aritmetiche e i test logici su una Series si applicano a tutti i suoi elementi
(broadcasting).
E' ovviamente sempre possibile eseguire
un'operazione su un solo elemento riferendosi ad
©

esso per posizione o indice. Mentre per i test logici


otteniamo una series (maschere) con valori “true”
quando la condizione è soddisfatta, altrimenti false. E’
possibile scegliere singolarmente gli elementi a
seconda del fatto che soddisfino o meno le nostre
condizioni.

34

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

La somma tra due serie le somma elemento per elemento, allineandole per indice. Se

ti
l’indice non è presente otteniamo Nan, ma è comunque aggiungibile attraverso il metodo
add.

n
pu
DATAFRAME DI PANDAS
Un DataFrame è una tabella di oggetti eterogenei, è l'equivalente bi-dimensionale di una
Series che ha indici sia per le righe che per le colonne.
★​ Index rappresenta le etichette delle righe

ap
★​ Columns rappresenta le etichette delle colonne (sono considerate series)
Tutte le operazioni viste per le serie possono essere applicate a colonne estratte da un
DataFrame. Inoltre molte delle operazioni definite per le Series possono essere applicate
direttamente su un DataFrame.
Si possono creare o da un dizionario di liste o da un file in formato tabellare, come CSV.

Tre attributi importanti sono:


ec
★​ shape, ritorna il numero di righe e colonne del dataframe
et
★​ columns, ritorna i nomi delle colonne del dataframe
★​ index, ritorna i nomi delle righe (o indici) del dataframe
m

Per accedere a una singola colonna del dataframe bisogna usare le singole parentesi
quadre o il punto: df[‘cond1’] è equivalente a df.cond1. Per accedere a più colonne usiamo le
doppie parentesi quadre.
io

È possibile accedere alle righe del dataframe in due modi, tramite indice, utilizzando
/B

l’attibuto iloc seguito da parentesi quadre o tramite il nome della riga, utilizzando l’attibuto loc
seguito da parentesi quadre. E’ possibile attuare filtri usando esclusivamente le parentesi
quadre.

FILTRARE
0_

Per filtrare i dati sulla base di due o più condizioni si possono chiaramente utilizzare gli
operatori logici & (and) e | (or).
Bisogna però mettere ogni condizione all’interno di parentesi tonde!
d0

CREAZIONE DI UNA NUOVA RIGA


Per creare una nuova colonna basta indicare il nome della colonna non ancora esistente ed
assegnare i valori tramite una lista. E’ possibile riempire la nuova colonna sulla base di una
n4

preesistente.

LETTURA E SCRITTURA SU FILE


PERCORSO DEI FILE E CARTELLA DI LAVORO
Per verificare quale è il percorso della cartella su cui Python sta lavorando bisogna utilizzare
©

la funzione getcwd() contenuta nel modulo os (standard library).


Per cambiare il percorso della attuale cartella di lavoro bisogna invece utilizzare la funzione
chdir():

LEGGERE FILES CSV IN PANDAS E NUMPY


L'acronimo CSV sta per Comma SeparatedValues.

35

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

Per importare files csv come array di numpy bisogna usare la funzione genfromtxt() del

ti
modulo numpy:
import numpy as np

n
my_data = [Link]('[Link]', delimiter=',')

pu
Per importare files csv come pandas dataframes bisogna invece utilizzare la funzione
read_csv() del modulo pandas:
import pandas as pd

ap
my_data = pd.read_csv('[Link]', sep=',', header=None)
print(my_data.values)

Per salvare una tabella di tipo ndarray su un file csv bisogna usare la funzione savetxt() del
modulo numpy:
import numpy ec
my_data = [Link]([ [1,2,3], [4,5,6], [7,8,9] ])
[Link](“[Link]", my_data, delimiter = ",")
et
Per salvare files csv a partire da pandas dataframes bisogna utilizzare la funzione to_csv()
del modulo pandas:
m

import pandas as pd
df.to_csv('[Link]')
GRAFICI
io

MATPLOTLIB
Matplotlib è una libreria per la realizzazione di grafici estremamente versatile, che permette
/B

di realizzare in maniera semplice moltissimi tipi di plots.


Il modulo si importa di solito rinominandolo plt, usando [Link] si importa solo il
modulo pyplot della libreria.

GRAFICI CON SERIES E NUMPY


0_

Per visualizzare il contenuto di una serie o il risultato di operazioni eseguite su serie è


possibile anzitutto utilizzare un line plot, il tipo di plot di default del metodo plot() della libreria
matplotlib.
d0

Per visualizzare un bar plot si usa [Link](kind=’bar’).

Per salvare su file i grafici generati bisogna utilizzare il metodo savefig di pyplot.
Con xticks e yticks è possible inserire sequenze di valori che, rispettivamente, appariranno
n4

sull'asse delle ascisse e su quella delle ordinate. Dimensionare i tick, con i range, in
riferimento alle sequenze da illustrare è fondamentale per valorizzare la rappresentazione.
Invece [Link]() è utilizzato per visualizzare la griglia di linee che nascono da ogni singolo
tick impresso sugli assi, permettendo di suddividere il piano in quadranti.
©

Con xlabel e ylabel assegniamo il valore agli assi mentre con title fissiamo un nome per il
grafico.
È inoltre possible graficare diversi dati sulla stessa area.
Ad esempio, è possible graficare y in funzione di x, e aggiungere una orizzontale basata
sulla media dei valori di y. Per farlo è sufficiente assegnare più comandi allo stesso oggetto
plt. axhline.

36

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


Per qualsiasi dubbio o se desideri avere ulteriori informazioni, cerca @n4d00_

Accedi al gruppo “MATRICOLE Biotecnlogie e [Link]” per confrontarti con i tuoi colleghi.

Segui il canale “BIOMETECT appunti” per ottenere tutte le sbobine e materiale didattico GRATUITO!

I metodi di Matplotlib offrono una serie di argomenti per la formattazione degli effetti come c

ti
per l'identificazione del colore (in questo caso "r" sta per red, rosso) e linestyle con cui
indichiamo il tratto della linea (la stringa "--" produce una linea tratteggiata).

n
pu
ap
ec
et
m
io
/B
0_
d0
n4
©

37

@n4d00_ MATRICOLE Biotecnlogie e [Link] BIOMETECT appunti


GRAZIE!

📚📚 Se questo materiale ti è stato utile, seguici sui


nostri canali per restare sempre aggiornato/a.

La conoscenza cresce solo se condivisa: partecipa


anche tu!

✍ Hai consigli o materiale didattico da condividere?


Contatta @n4d00_e aiutaci a migliorare.

Donare il proprio sapere significa rendere lo studio


un cammino comune.

Potrebbero piacerti anche