Open In Colab

Google Colaboratory

Uno Jupyter notebook è un insieme di celle che permettono sia di annotare informazioni (Celle di Testo) che di scrivere codice (Celle di Codice ).

Text Cell

Una cella di testo è una cella utilizzata per annotare appunti in modo semplice e veloce. Al fine di annotare velocemente informazioni si utilizza un astrazione del linguaggio html chiamato Markdown. Questo linguaggio permette velocemnte e in modo poco verbose di scrivere codice html.

Markdown

Riassumiamo le principali caratteristiche del linguaggio Markdown che utilizzeremo per scrivere appunti nei nostri notebook.

Maggiori informazioni sul linguaggio Markdown si posso trovare leggendo Markdown Guide e l’articolo Mastering Markdown.

Headers

# h1
## h2
### h3
#### h4
#### h5

Bold e Italic

bold text , italicized text ~~strikethrough~~

**bold text** , *italicized text* , ~~strikethrough~~

Blockquote

1 blockquote

2 blockquote

1 blockquote

2 blockquote

Liste

Ordinate

  1. First item

  2. Second item

  3. Third item


Non ordinate

- First item
- Second item
- Third item
  • First item

  • Second item

  • Third item

Lista di Task da fare

- [x] Write the press release
- [ ] Update the website
- [ ] Contact the media
  • [x] Write the press release

  • [ ] Update the website

  • [ ] Contact the media

Latex Math formula

1. $\sqrt{3x-1}+(1+x)^2.$
2. $y=x^2$
3. $e^{i\pi} + 1 = 0$
4. $e^x=\sum_{i=0}^\infty \frac{1}{i!}x^i$
5. $\frac{n!}{k!(n-k)!} = {n \choose k}$
6. $A_{m,n} =\begin{pmatrix}
              a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\
              a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\
              \vdots  & \vdots  & \ddots & \vdots  \\
              a_{m,1} & a_{m,2} & \cdots & a_{m,n}
             \end{pmatrix}$
  1. \(\sqrt{3x-1}+(1+x)^2.\)

  1. \(y=x^2\)

  1. \(e^{i\pi} + 1 = 0\)

  1. \(e^x=\sum_{i=0}^\infty \frac{1}{i!}x^i\)

  1. \(\frac{n!}{k!(n-k)!} = {n \choose k}\)

  1. \(A_{m,n} = \begin{pmatrix} a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\ a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m,1} & a_{m,2} & \cdots & a_{m,n} \end{pmatrix}\)

Codice

```
codice
```
import numpy as np
a = np.array[1,2,3,4]
print("Vettore:", a)
s  = np.sum()
print("Somma degli elementi del vettore: " + s)

Image

![visionlab](https://raw.githubusercontent.com/visiont3lab/tecnologie_data_science/master/book/logo.png)

visionlab

Table

| Syntax | Description |
| ----------- | ----------- |
| Header | Title |
| Paragraph | Text |

Syntax

Description

Header

Title

Paragraph

Text

Code Cell

Una cella di codice serve per eseguire un programma scritto in linguaggio python. In particolare utilizzeremo sempre Python 3 Jupyter notebook.

Shortcut per eseguire codice

  • Cliccando l’icona di Play della cella il codice contenuto in essa viene eseguito.

  • Cliccando Cmd/Ctrl+Enter viene eseguito il codice della cella evidenziata.

  • Cliccando Shift+Enter viene eseguito il codice della cella evidenziata e il focus passa alla cella sucessiva.

  • Cliccando Alt+Enter viene eseguito il codice della cella e viene inserita anche un nuovo blocco di codice.

Suggerimenti e auto-completamento

Google Colab ha un sistema di suggerimenti che viene triggerato schicciando Tab mentre si scrive codice. Esso è utile per scrivere velocemente codice ed evitare errori di sintassi.

# Importare la libreria numpy
import numpy as np
np.random. 
# Se si prova a scrivere np.random. vedremo
# apparire dei suggerimenti
# Se premiamo Tab apparirà anche la documentazione
# associata alla funzione
np.random?
# Premendo Shift-Enter viene aperta la documentazione
# Il punto interrogativo alla fine chiama
# la documentazione quando il codice viene 
# eseguito

Esecuzione di comandi

Google Colaboratory ci permette mediante uno Jupyter Notebook di eseguire il nostro codice Python e Mardown. Tuttavia è possibile che vi sia la necessità di installare programmi sul computer che ospita il nostro notebook. Per face ciò è necessario create una cella di codice e inserire il punto esclamativo ! davanti all’istruzione che si vuole eseguire. Quest’ultima sarà un instruzione di sistema. Siccome la macchina che ospita il nostro notebook è una macchina linux è comune utilizzare il linguaggio bash per eseguire comando.

Jupyter notebbok fornisce una lista di comandi che possono essere utilizzati per scrivere codice javascript (%%javascript), nascondere gli ouput del codice eseguito (%%capture) o creare un file utilizzando il notebook (%%writefile). Tali comandi vanno inseriti all’inizio del blocco di codice. La lista completa dei comandi si trova Built-in-Magics Commands

# Percorso file a cui sono
!pwd
/content
# Elencare i file contenuti in una cartella
!ls
sample_data
# Elencare i file contenuti in una cartella
!cd sample_data && ls 
anscombe.json		      mnist_test.csv
california_housing_test.csv   mnist_train_small.csv
california_housing_train.csv  README.md
/content/sample_data
# Entrare in un cartella
%cd sample_data/ 
/content/sample_data
# Muovermi nella cartella superiore
%cd ..
/content
# Nascondere l'output di un comando.
# I comandi di installazione generano output verbosi che si 
# possono nascondere aggiungendo alla cella il comando
%%capture

# Installare un pacchetto python usando
# pip package manager
# !pip list # elencare i pacchetti installati
!pip install names 
!apt-get -qq install -y libfluidsynth1
# Clonare un repositorio git 
!git clone https://github.com/visiont3lab/tecnologie_data_science.git && ls
Cloning into 'tecnologie_data_science'...
remote: Enumerating objects: 41, done.
remote: Counting objects: 100% (41/41), done.
remote: Compressing objects: 100% (33/33), done.
remote: Total 41 (delta 8), reused 12 (delta 0), pack-reused 0
Unpacking objects: 100% (41/41), done.
sample_data  tecnologie_data_science
# Creazione di un file python myLib.py
%%writefile myLib.py
import numpy as np
import plotly.graph_objects as go
from matplotlib import pyplot as plt

def myplot(x,y):
    #fig = go.Figure()
    #fig.add_trace( go.Scatter(x=x,y=y, mode="lines+markers", name="Line") )
    fig = plt.plot(x,y)
    return fig
Overwriting myLib.py
# Utilizzo del file mylib.py creato
from importlib import reload 
import myLib
myLib = reload(myLib)

x = np.arange(0.0, 2.0, 0.01)
y = 1 + np.sin(2 * np.pi * x)
fig = myLib.myplot(x,y)
../../_images/google_colab_44_0.png
%%script bash
# È possibile scrivere codice bash
ls > name.txt;
cat name.txt
for i in 1 2 3; do
    echo $i
done
m.txt
myLib.py
name.txt
__pycache__
sample_data
tecnologie_data_science
test.py
1
2
3

Montare Google Drive come hard disk esterno

Una delle qualità di Google Colaboratory è il fatto che esso è connesso a Google Drive. Questo fa si che i notebook che vengono creati utilizzando Google Colab vengano automaticamente salvati nel drive dell’utente. Inoltre è possibile accedere al prorpio drive e lavorare con dei file contenuti in esso. Questo approccio è estramente interessante in quanto permette di combinare l’abilità di scrivere codice di Google Colab con le capacità di archiviazione file fornite da Google Drive. Di seguito `è riporatata la sequenza di comandi necessaria per montare il drive dell’utente all’interno di Google Colab.

La sequenza di instruzioni sucessiva equivale al bottone chiamata Mount Drive che si a sinistra nel gruppo Files.

from google.colab import drive
drive.mount('/content/drive')
Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3aietf%3awg%3aoauth%3a2.0%3aoob&response_type=code&scope=email%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdocs.test%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive.photos.readonly%20https%3a%2f%2fwww.googleapis.com%2fauth%2fpeopleapi.readonly

Enter your authorization code:
··········
Mounted at /content/drive
%cd /content/drive/My Drive/lessons/tecnologie_data_science
!ls
/content/drive/My Drive/lessons/tecnologie_data_science
_Dani  Market-Basket-Analysis-master  _template_PySpark
_Manu  tecnologie_data_science.xlsx