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~~
Liste¶
Ordinate
First item
Second item
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}$
\(\sqrt{3x-1}+(1+x)^2.\)
\(y=x^2\)
\(e^{i\pi} + 1 = 0\)
\(e^x=\sum_{i=0}^\infty \frac{1}{i!}x^i\)
\(\frac{n!}{k!(n-k)!} = {n \choose k}\)
\(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)
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.[K
remote: Counting objects: 100% (41/41), done.[K
remote: Compressing objects: 100% (33/33), done.[K
remote: Total 41 (delta 8), reused 12 (delta 0), pack-reused 0[K
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)
%%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