2. Ambiente di lavoro#
Tutte le attività previste in questo insegnamento possono essere facilmente eseguite su Google Colab senza la necessità di installare alcun software sul vostro computer.
2.1. Google Colab#
Utilizzando il seguente link, è possibile accedere a Google Colab e iniziare a scrivere codice Python direttamente dal proprio browser, senza dover effettuare alcuna installazione. Basta selezionare l’opzione “Nuovo notebook” per creare un nuovo ambiente di lavoro. Per avere un’introduzione completa sulle funzionalità di Colab, si può consultare la guida disponibile al seguente link. È possibile salvare ogni notebook nella propria cartella di Google Drive per una facile gestione e condivisione dei file.
2.1.1. Jupyter Notebook#
Durante questo insegnamento, utilizzeremo i Jupyter Notebook come strumento principale per la scrittura del codice e la creazione di documenti interattivi. I Jupyter Notebook offrono la possibilità di creare e condividere documenti che includono codice, testo descrittivo, grafici e altri elementi multimediali. Grazie a queste caratteristiche, i Jupyter Notebook rappresentano uno strumento eccellente per documentare e condividere in modo trasparente e riproducibile i processi di analisi dei dati.
I Jupyter Notebook offrono un ambiente interattivo in cui il codice può essere eseguito in celle in qualsiasi ordine. Questa flessibilità consente agli utenti di esplorare e analizzare i dati in modo iterativo, contribuendo a una migliore comprensione e affinamento delle analisi. Inoltre, i Jupyter Notebook consentono di integrare agevolmente codice proveniente da diverse lingue di programmazione, tra cui Python, R, Julia e altre.
Il Jupyter Notebook ha avuto origine come parte del progetto IPython e prende il nome dalle tre principali lingue di programmazione che supporta: Julia, Python e R. Tuttavia, può essere utilizzato con molte altre lingue di programmazione.
I Jupyter Notebook supportano due tipi di celle: celle di testo e celle di codice.
Le celle di testo consentono di scrivere testo formattato utilizzando la sintassi Markdown. Questo permette agli autori di inserire del testo descrittivo, inclusi immagini, formule in formato \(\LaTeX\), tabelle e altro ancora. Le celle di testo facilitano la documentazione del processo di analisi dei dati in modo chiaro e comprensibile.
Le celle di codice, invece, consentono di scrivere e eseguire codice Python. Il codice può essere eseguito facendo clic sul triangolo presente a sinistra di ogni cella. Diverse celle possono contenere istruzioni diverse e possono essere eseguite in sequenza. Una funzione definita in una cella precedente può essere utilizzata successivamente solo se la cella precedente è stata eseguita.
I Jupyter Notebook possono essere eseguiti sia localmente sul proprio computer che su un server remoto, come Google Colab. Ciò consente agli utenti di accedere ai propri notebook da qualsiasi dispositivo connesso a Internet e di condividere facilmente il proprio lavoro con altre persone.
2.2. Bash shell#
Nell’ambiente di esecuzione di Colab sono già preinstallate numerose librerie Python. Tuttavia, potrebbe essere necessario installare ulteriori librerie su Colab. Per farlo, è possibile utilizzare comandi bash preceduti dal carattere !
. Bash (Bourne-Again SHell) è una shell a riga di comando che consente agli utenti di interagire con il sistema operativo. L’utilizzo del carattere !
indica a Colab che la cella del notebook non contiene codice Python, ma uno script della riga di comando.
Ad esempio, per installare le librerie pymc
, bambi
e arviz
, è possibile utilizzare i seguenti comandi:
!pip install bambi
!pip install pymc
!pip install arviz
Queste istruzioni installeranno diverse librerie, inclusi numpy
, pandas
, matplotlib
, seaborn
, scipy
, statmodels
, pymc
e bambi
. Le librerie menzionate sono sufficienti per gli scopi di questo insegnamento.
Per ottenere l’elenco delle librerie disponibili su Colab, è possibile utilizzare l’istruzione !pip freeze
.
2.2.1. Kernel#
Il kernel è la componente essenziale di un Jupyter Notebook responsabile dell’esecuzione del codice Python all’interno delle celle di codice. Quando un utente esegue una cella, il contenuto viene inviato al kernel per l’esecuzione. Il kernel è in grado di mantenere lo stato delle variabili e delle funzioni Python tra le diverse celle, consentendo l’utilizzo di variabili e funzioni definite in celle precedenti nelle celle successive. Questo aspetto interattivo permette agli utenti di eseguire il codice in modo iterativo ed esplorare i dati in maniera flessibile.
Il Jupyter Notebook supporta diversi kernel, inclusi quelli per Python, ma anche per altri linguaggi di programmazione come R, Julia e Matlab. Ciò consente agli utenti di utilizzare il Jupyter Notebook per l’analisi dei dati in vari linguaggi di programmazione.
In sintesi, il kernel rappresenta il cuore del Jupyter Notebook, garantendo l’esecuzione del codice Python nelle celle di codice e il mantenimento dello stato delle variabili e delle funzioni tra le esecuzioni delle celle.
2.2.2. Markdown#
Markdown è un linguaggio di markup leggero che permette di formattare il testo in modo semplice ed efficiente. Con il Markdown, è possibile creare documenti con una formattazione di testo senza la necessità di utilizzare codice HTML complesso.
Il Markdown si basa su una serie di simboli e convenzioni di formattazione che consentono di creare titoli, elenchi, tabelle, citazioni, testo in grassetto, corsivo e altro ancora. Ecco alcuni esempi di formattazione del testo in Markdown:
Per creare un titolo, è sufficiente utilizzare il simbolo “#” seguito dal testo del titolo. Ad esempio,
# Titolo del documento
genererà un titolo di primo livello.Per creare una lista puntata, è possibile utilizzare il simbolo “-” seguito dal testo dell’elemento della lista. Ad esempio,
- Elemento 1
genererà un elemento di lista puntata.Per creare un collegamento ipertestuale, basta utilizzare il simbolo “[” seguito dal testo del collegamento e dal simbolo “]” seguito dall’URL del collegamento. Ad esempio,
[Link a Google](https://www.google.com/)
creerà un collegamento con il testo “Link a Google” che reindirizza alla homepage di Google.Per formattare il testo in grassetto, è possibile utilizzare il simbolo “**” prima e dopo il testo da formattare. Ad esempio,
**Testo in grassetto**
renderà il testo in grassetto.Per formattare il testo in corsivo, è possibile utilizzare il simbolo “*” prima e dopo il testo da formattare. Ad esempio,
*Testo in corsivo*
renderà il testo in corsivo.
In sintesi, il linguaggio Markdown offre un modo semplice ed efficace per formattare il testo senza ricorrere a codice HTML complesso. Grazie alla sua semplicità e alla sua capacità di generare documenti ben leggibili e uniformemente formattati, il Markdown è ampiamente utilizzato negli ambienti di scrittura tecnica, compresi i notebook Jupyter.
2.2.3. Command magic#
I “command magic” sono una serie di comandi speciali che possono essere utilizzati all’interno di Jupyter Notebook per eseguire varie azioni. Di seguito viene fornita una breve spiegazione dei command magic più comuni:
%run
: questo comando consente di eseguire un file Python come programma.%timeit
: questo comando esegue una riga di codice più volte e calcola il tempo medio di esecuzione.%matplotlib
: questo comando abilita l’integrazione di Matplotlib per la visualizzazione dei grafici all’interno del notebook.%load
: questo comando permette di caricare il codice da un file esterno all’interno di una cella del notebook.%reset
: questo comando rimuove tutte le variabili presenti nella sessione corrente del notebook.%pwd
: questo comando restituisce il percorso della directory corrente.%cd
: questo comando cambia la directory di lavoro corrente.%%time
: questo comando calcola il tempo di esecuzione di un’intera cella di codice.
In Jupyter Notebook sono disponibili numerosi altri comandi magic che consentono di eseguire diverse operazioni. Per visualizzare l’elenco completo di questi comandi, è possibile digitare %lsmagic
all’interno di una cella del notebook.
2.2.4. Google Drive#
Google Drive è un servizio di archiviazione cloud fornito da Google che consente di memorizzare e condividere file online, rendendoli accessibili da qualsiasi dispositivo connesso a Internet. Ogni membro della comunità UniFi ha a disposizione un account Google Drive. È consigliabile creare una cartella dedicata nel proprio account Google Drive per salvare i notebook utilizzati in questo corso. Per accedere al proprio Drive, basta effettuare l’accesso all’account e-mail UniFi e fare clic sull’icona a forma di griglia di 9 puntini nell’angolo in alto a destra (App Google). Dalla lista delle applicazioni disponibili, selezionare Google Drive per accedere all’archivio online personale. Una volta all’interno di Google Drive, è possibile creare una nuova cartella (ad esempio psicometria
) e salvare tutti i notebook creati durante il corso. Questo consentirà di mantenere organizzati i propri file e di averli facilmente accessibili per future consultazioni.
2.2.5. Collegare Google Drive a Colab#
Per accedere alla propria cartella di Google Drive durante l’utilizzo di Colab, è possibile seguire i seguenti passaggi:
Dalla pagina iniziale, fare clic sull’icona a forma di cartella (Files) situata nel menu in alto a sinistra.
Si aprirà un menu con diverse opzioni.
Selezionare la terza icona tra le quattro disposte orizzontalmente. Apparirà l’istruzione “Run this cell to mount your Google Drive”. Fare clic sull’icona del triangolo contenuta in un cerchio grigio.
A questo punto, fare clic sull’icona “drive” e successivamente su “MyDrive” per accedere alle cartelle e ai file salvati sul proprio Google Drive.
È importante tenere presente che la versione gratuita del runtime di Google Colaboratory non salva le informazioni in modo permanente, il che significa che tutto il lavoro svolto verrà eliminato una volta terminata la sessione. Pertanto, è necessario reinstallare le librerie utilizzate in precedenza ogni volta che ci si connette a Colab. Al contrario, i Jupyter Notebook possono essere salvati nella propria cartella di Google Drive.
Per salvare un Jupyter Notebook su Google Drive utilizzando Colab, è possibile seguire i seguenti passaggi:
Fare clic su
File
nella barra del menu di Colab.Selezionare
Save a copy in Drive
. Di default, Colab salverà il Notebook nella cartellaColab Notebooks/.ipynb_checkpoints
con un nome simile aUntitled7.ipynb
.Dopo aver salvato il Notebook, è consigliabile rinominarlo facendo clic con il pulsante destro del mouse sul file nella cartella di Google Drive e selezionando
Rename
. In questo modo sarà possibile assegnare un nome più significativo al Notebook.Per organizzare i file, è possibile trascinare il Notebook nella cartella desiderata all’interno di Google Drive.
Seguendo questi passaggi, sarà possibile salvare e organizzare i Jupyter Notebook nella propria cartella di Google Drive, consentendo di accedervi facilmente e mantenerli in modo permanente anche dopo la sessione di Colab.
Tip
È possibile accedere a un breve tutorial video su come utilizzare Colab e come leggere i dati da un file esterno in un Notebook di Jupyter in Colab. Il video tutorial può essere trovato seguendo il link fornito.
2.3. Installazione sul proprio computer#
Per seguire questo insegnamento, è possibile utilizzare i Notebook online gratuiti forniti da Google (Google Colab), che non richiedono l’installazione di Python e delle librerie necessarie sul proprio computer. Tuttavia, se si preferisce eseguire il codice sul proprio computer locale, è possibile seguire le seguenti istruzioni per installare Python e le librerie necessarie:
Installazione di Python: È necessario installare un interprete Python sul proprio computer. È consigliabile utilizzare la versione più recente di Python, che può essere scaricata dal sito ufficiale di Python (https://www.python.org). Durante l’installazione, assicurarsi di selezionare l’opzione per aggiungere Python al percorso di sistema.
IDE (Integrated Development Environment): È consigliabile utilizzare un IDE per scrivere ed eseguire il codice Python sul proprio computer. Un’opzione popolare è Visual Studio Code (VS Code), disponibile gratuitamente su (https://code.visualstudio.com). Dopo aver installato VS Code, è possibile estenderne le funzionalità installando l’estensione “Python” per consentire la scrittura e l’esecuzione del codice Python direttamente dall’IDE.
Una volta completate queste due operazioni, si sarà pronti per programmare in Python sul proprio computer utilizzando un IDE come Visual Studio Code. Sarà quindi possibile scrivere, eseguire e debuggare il codice Python, oltre a sfruttare altre funzionalità utili offerte dall’IDE.
È importante tenere presente che l’installazione di Python e delle librerie necessarie può richiedere alcuni passaggi aggiuntivi, come la gestione dell’ambiente virtuale e l’installazione specifica delle librerie richieste per i vari esempi. Tuttavia, queste istruzioni generali dovrebbero consentire di configurare un ambiente di sviluppo Python di base sul proprio computer.
2.4. Installlare Python in un ambiente virtuale#
2.4.1. Anaconda#
Se si desidera installare Python sul proprio computer in modo semplice, una delle opzioni consigliate è utilizzare Anaconda. Seguendo i passaggi di seguito, è possibile procedere con l’installazione di Anaconda sul proprio computer:
Scaricare Anaconda: Visitare il sito ufficiale di Anaconda all’indirizzo https://www.anaconda.com/ e scaricare la versione appropriata di Anaconda per il proprio sistema operativo (Windows, macOS o Linux). È consigliabile scegliere la versione più recente di Anaconda, che include l’ultima versione di Python.
Eseguire l’installer di Anaconda: Dopo aver completato il download, avviare l’installer di Anaconda. Seguire le istruzioni visualizzate durante il processo di installazione. È consigliato di accettare le impostazioni predefinite a meno che non si desideri personalizzarle.
Aggiungere Anaconda al percorso di sistema: Durante l’installazione, sarà richiesto di selezionare l’opzione per aggiungere Anaconda al percorso di sistema. Assicurarsi di selezionare questa opzione per consentire l’accesso a Python e agli strumenti di Anaconda da qualsiasi posizione nel prompt dei comandi o nel terminale.
Verifica dell’installazione: Dopo aver completato l’installazione, è possibile verificare se Python è stato installato correttamente aprendo il prompt dei comandi (Windows) o il terminale (macOS/Linux) e digitando il comando
python --version
. Se viene visualizzata la versione corretta di Python, l’installazione è stata completata con successo.
Anaconda include anche un ambiente di sviluppo integrato chiamato Anaconda Navigator, che fornisce un’interfaccia grafica per gestire gli ambienti virtuali, installare librerie aggiuntive e avviare Jupyter Notebook per scrivere e eseguire il codice Python.
Una volta installato Anaconda, si sarà pronti per iniziare a programmare in Python sul proprio computer utilizzando gli strumenti forniti da Anaconda, tra cui Jupyter Notebook, Spyder e altri IDE disponibili all’interno di Anaconda Navigator.
Warning
Si prega di notare che l’installazione di Anaconda può variare leggermente a seconda del sistema operativo utilizzato. Di seguito sono riportate le istruzioni per l’installazione di Anaconda su Windows:
Scaricare Anaconda: Visitare il sito ufficiale di Anaconda all’indirizzo https://www.anaconda.com/ e scaricare il pacchetto “64-Bit Graphical Installer” per Windows.
Eseguire il programma di installazione: Dopo aver completato il download, fare doppio clic sul file di installazione appena scaricato. Si aprirà la finestra di installazione di Anaconda.
Configurare l’installazione: Durante il processo di installazione, assicurarsi di selezionare l’opzione “Just Me” per installare Anaconda solo per l’utente corrente. Lasciare il percorso di installazione predefinito invariato.
Aggiungere Anaconda al percorso di sistema: Nelle opzioni avanzate dell’installer, assicurarsi di selezionare l’opzione per registrare Anaconda come l’installazione di Python di sistema e selezionare anche l’opzione per aggiungere Anaconda al PATH. Questo consente di accedere a Python e agli strumenti di Anaconda da qualsiasi posizione nel prompt dei comandi.
Verificare l’installazione: Dopo aver completato l’installazione, cercare “Anaconda Navigator” nella barra di ricerca di Windows o nel menu Start. Se l’applicazione si avvia correttamente, l’installazione di Anaconda è stata completata con successo. Inoltre, cercare e aprire “Anaconda Prompt” dal menu Start e digitare
conda --version
per verificare checonda
sia installato correttamente.
Si consiglia di seguire attentamente le istruzioni fornite durante l’installazione per garantire un’installazione corretta di Anaconda sul proprio sistema Windows.
Una volta completata l’installazione di Anaconda, è possibile utilizzare Anaconda Navigator per gestire gli ambienti di sviluppo, installare pacchetti aggiuntivi e avviare Jupyter Notebook e altri strumenti di programmazione Python.
È possibile seguire un tutorial dettagliato passo-passo sull’installazione di Anaconda su Windows visitando il seguente link: Tutorial Installazione di Anaconda su Windows. Nel tutorial vengono fornite istruzioni dettagliate e illustrazioni per guidarvi attraverso il processo di installazione. Inoltre, nel tutorial viene spiegato come impostare la variabile PATH nel caso in cui non sia stata selezionata l’opzione “Add Anaconda to my PATH environment variable” durante l’installazione. Seguendo attentamente il tutorial, potrete installare Anaconda correttamente sul vostro sistema Windows e configurare correttamente le variabili di ambiente.
Note
È importante notare la differenza tra un’applicazione (o “app” per abbreviazione) e un installer. Un’applicazione è un programma che viene eseguito sul computer o su un altro dispositivo per svolgere specifiche funzioni o fornire determinati servizi all’utente. Ad esempio, un’app può essere un browser web, un’app di messaggistica o Anaconda stessa.
D’altra parte, un installer è un programma che guida l’utente attraverso il processo di installazione dell’applicazione sul proprio dispositivo. L’installer svolge una serie di operazioni, come copiare i file dell’applicazione nella posizione corretta sul disco rigido, creare collegamenti nel menu Start o sul desktop, configurare eventuali impostazioni dell’applicazione e altre attività simili. Durante l’installazione, l’installer può richiedere all’utente di selezionare opzioni specifiche, come la lingua dell’applicazione o la directory di installazione.
Una volta che l’applicazione è stata correttamente installata, l’installer può essere rimosso dal dispositivo, poiché la sua funzione è stata completata. L’installer non ha alcun ruolo nell’esecuzione dell’applicazione stessa e non viene utilizzato dopo l’installazione.
In sintesi, l’applicazione è il software effettivo che viene eseguito per svolgere determinate funzioni, mentre l’installer è un programma ausiliario che guida l’utente attraverso il processo di installazione dell’applicazione sul dispositivo.
2.4.2. L’ambiente virtuale#
Dopo aver completato l’installazione di Python, è consigliabile configurare un ambiente virtuale, noto come “virtual environment”, all’interno del quale è possibile installare l’interprete e le librerie necessarie. Un virtual environment è essenzialmente un ambiente isolato dal resto del sistema operativo, il che significa che le librerie installate al suo interno non interferiranno con altre installazioni globali del sistema. Questo approccio offre numerosi vantaggi ai ricercatori, come la riproducibilità del codice, una buona documentazione e facilità di condivisione [Per23].
L’utilizzo di ambienti virtuali è preferibile a un’installazione globale a causa dell’evoluzione rapida del mondo Python. Spesso, ci sono differenze significative tra le diverse versioni dell’interprete Python, anche tra le release minori. Queste differenze possono rendere le librerie incompatibili tra loro e, di conseguenza, i programmi scritti per versioni diverse potrebbero non funzionare correttamente. Utilizzando un ambiente virtuale, è possibile creare un ambiente deterministico specificando la versione dell’interprete Python e le versioni delle librerie necessarie. Questo garantisce che i programmi funzionino correttamente e, in caso di condivisione o replica del codice, è sufficiente replicare l’intera configurazione dell’ambiente virtuale per garantire un funzionamento uniforme [Per23].
Tip
È possibile seguire un tutorial video dettagliato su come creare un ambiente virtuale, compreso l’installazione di Python, tramite il seguente link. Nel video tutorial, viene presupposto che l’utente abbia già installato conda
sul proprio computer. È importante notare che l’installazione corretta di Anaconda sul sistema è necessaria per utilizzare conda
.
2.4.2.1. Gestione dell’ambiente virtuale#
Di seguito viene fornita una procedura passo dopo passo per gestire gli ambienti virtuali utilizzando il programma conda
. Entrambi conda
e pip
sono inclusi in Anaconda e saranno disponibili sul computer dopo l’installazione di Anaconda. Per eseguire queste istruzioni, utilizzare il terminale (o Prompt dei comandi su Windows).
Per prima cosa, uscire dall’ambiente virtuale corrente eseguendo il seguente comando:
conda deactivate
Si noti che questo passaggio è necessario e non deve essere saltato. Se viene visualizzato un messaggio che avverte che non è possibile disattivare alcun ambiente virtuale, non preoccuparsi, il messaggio indica semplicemente che il comando precedente non era necessario.
Creare un nuovo ambiente virtuale chiamato, ad esempio,
pymc_env
(il nome è arbitrario), utilizzando il seguente comando:
conda create -c conda-forge -n pymc_env "pymc>=4"
Quando viene richiesto se procedere, rispondere “sì”:
Proceed ([y]/n)? y
Attivare l’ambiente virtuale appena creato eseguendo il seguente comando:
conda activate pymc_env
Procedere con l’installazione delle seguenti librerie aggiuntive eseguendo i seguenti comandi uno alla volta:
conda install -c conda-forge seaborn
conda install -c conda-forge bambi
conda install -c conda-forge watermark
conda install -c conda-forge black
A questo punto è stata completata la creazione dell’ambiente virtuale pymc_env
.
2.4.2.2. Altri comandi utili#
Un ambiente virtuale è contenuto in una singola cartella. Possiamo ottenere l’indirizzo di questa cartella con:
conda info -e
Ciò rende molto facile rimuovere completamente un ambiente virtuale. Per fare questo, supponendo che l’ambiente virtuale si chiami my_env
, usiamo:
conda env remove -n my_env
Se vogliamo solo rimuovere una libreria dall’ambiente virtuale (supponiamo si chiami package_name
), usiamo:
conda remove package_name
2.5. Installazione di un ambiente di sviluppo integrato (IDE)#
Dopo aver installato Python e le librerie necessarie, il passo successivo è installare un ambiente di sviluppo integrato (IDE). Un IDE è un’applicazione software che offre una serie di strumenti per facilitare la programmazione.
Esistono molti IDE disponibili, ma consiglio di utilizzare Visual Studio Code, un IDE gratuito e open source sviluppato da Microsoft, disponibile per i principali sistemi operativi. Visual Studio Code può essere esteso tramite pacchetti chiamati estensioni, che lo rendono estremamente versatile. Per scaricare Visual Studio Code, visitare il sito web ufficiale all’indirizzo https://code.visualstudio.com/.
Visual Studio Code supporta sia la programmazione tramite script che l’utilizzo di notebook Jupyter. Mentre gli script contengono principalmente codice (con estensione .py
), i notebook Jupyter possono includere sia testo che codice, organizzati in celle. I notebook Jupyter hanno estensione .ipynb
.
Dopo aver installato e aperto Visual Studio Code, è possibile accedere alla scheda “Extensions” nella barra laterale sinistra (rappresentata da un’icona con quattro quadrati sovrapposti). Da qui, è possibile cercare e installare l’estensione Python per Visual Studio Code utilizzando la casella di ricerca all’interno del pannello delle estensioni di Visual Studio Code.
Per utilizzare i notebook Jupyter in Visual Studio Code, è necessario avere la libreria ipython
installata. Se la libreria è mancante, Visual Studio Code richiederà di installarla automaticamente quando si aprirà il primo notebook Jupyter. È consigliabile rispondere in modo positivo a tale richiesta per procedere con l’installazione della libreria ipython
.
2.5.1. Lavorare con VSCode#
Una volta arrivati a questo punto, siete pronti per iniziare a lavorare su VSCode. Quando aprite un file con estensione .ipynb
, ricordate sempre di selezionare l’ambiente virtuale che desiderate utilizzare. Potete farlo tramite la “Command Palette” (⇧⌘P), utilizzando l’istruzione Python: Select Interpreter
. In alternativa, potete fare clic sull’icona Select kernel
di VSCode, che si trova nell’angolo in alto a destra, sotto l’icona degli ingranaggi (⚙️).