• Non ci sono risultati.

4.2 Tecniche e strumenti utilizzati

4.2.1 Jupyter e i pacchetti Python

Jupyter è una piattaforma di sviluppo indirizzata ai data analyst che mette a disposizione le proprie performance. Esistono varie possibilità per installare un jupyter notebook sul proprio dispositivo:

1 : Installazione diretta tramite command prompt, utilizzando i comandi di

accesso ai dati online direttamente dalla Python community e quindi ‘pip install’ e via dicendo, fino ad arrivare al setup completo di tutte le librerie che ci si ritrova ad utilizzare. [25]

2 : Installando il pacchetto totale comprensivo di setup tools comprendenti

il core Python e successivi kernel di packages. Questo servizio è messo a disposizione da molti repository online e community che lavorano ala- cremente per permettere anche ai neofiti di approcciarsi al linguaggio di programmazione sopracitato diminuendo sensibilmente il gap iniziale che ne prevede l’installazione sulla propria macchina, da molti conside- rata particolarmente laboriosa e a tratti difficoltosa. I pacchetti online più utilizzati, nonché consigliati a più riprese, sul web sono Anaconda [27] e Canopy [28].

Una volta orientati all’utilizzo di Python come linguaggio per l’analisi di dati, abbiamo installato le librerie utili per la data analysis:

Pandas [29]: libreria open souce per alte performance in tema di data ana- lysis. Questa libreria permette operazioni di management e query su strutture dati ottimizzate.

CAPITOLO 4. DATI E STRUMENTI DI ANALISI

Numpy [30]: libreria per scientific computing creata da BSD che mette a disposizione tools quali: Array N-dimensionali, strumenti di integrazione con C++, calcoli algebrici, trasformate e funzioni di data broadcasting.

Os [31]: modulo che permette la creazione di un sistema operativo dipen- dente dai moduli basati su Python. Esso permette anche l’allocazione temporanea di dati nella memoria volatile della propria macchina al fine di rendere più semplice ed immediato l’accesso nonché il management dei dati presi in considerazione.

Scipy [32]: uno dei pacchetti del core packages delle librerie tese all’anali- si di dati di stampo numerico, i cui punti di forza sono rappresentati dall’integrazione numerica e dall’ottimizzazione.

L’analisi di dati ha visto un iter tipico delle data analysis. Una prima pulizia di essi (cleaning dei dati) è stata messa in pratica utilizzando le librerie descritte sopra. Una volta conlcusa questa fase preliminare, al fine di rendere il lavoro più snello, ci si è orientati verso la creazione di database relazionali da cui richiamare dinamicamente, di volta in volta, le informazioni necessarie per l’analisi. Per la creazione di questi ci si è avvalsi dell’utilizzo del pacchetto Python SQLite.

SQLite [33]: motore di creazione di database SQL tra i più usati dagli analisti di dati; le cui più importanti caratteristiche prevedono la natura cross- based, self-contained, high-reliability, full-featured e public-domain. Le finalità di SQLite non sono tipiche dei server SQL comunemente usati nel web come MySQL, Oracle, PostgreSQL, in quanto essa si prefigge di risolvere problemi tipici dell’analisi di dati quali: scalabilità, con- currency, centralization e controllo. Per queste ragione e a fronte della peculiarità di quest’ultima di interfacciarsi perfettamente con i note- book Jupyter, abbiamo trovato in essa un validissimo tool capace di far risparmiare tempo, nonché numerosi calcoli e procedimenti addizionali alla nostra macchina.

Infine, per la data visualization sono state prese in considerazione le librerie quali:

CAPITOLO 4. DATI E STRUMENTI DI ANALISI

MatplotLib [34]: piattaforma Python-based per la creazione di grafici bi- dimensionali e tri-dimensionali. La sua flessibilità la rende di fatto una delle migliori librerie per la data visualization, nonché base per molte altre librerie di visualizzazione di dati che delegano ai suoi script parte della renderizzazione.

PyPlot [35]: sotto-libreria di MatplotLib. Questa non è altro che la combina- zione di Numpy con MatplotLib, con l’intento di ottimizzare al massimo le rese grafiche sottoponendo all’analista di dati un maggior varietà di scelte in termini di visualizzazioni. Recentemente, il team di sviluppo di questa libreria ha implementato il suddetto package rendendo fruibile numerose risorse online, tra cui: data frame responsive e visualizzazioni dinamiche web-based.

PyLab [36]: tool messo a disposizione da MatplotLib ma non direttamente dipendente da esso. Un pratico envinronment supportato dalle funzioni matematiche tipiche di Numpy e dai simboli di MatplotLib.

NetworkX [37]: pacchetto per la creazione, modificazione, manipolazione e studio delle reti complesse di dati. Pensata per i linguaggi di program- mazione — in particolare per Python — essa si basa su algoritmi di creazione di grafi. Completamente open source, è distribuita da BSD al pari della sopracitata Numpy.

igraph [38]: collezione di strumenti per l’analisi delle reti che permette di enfatizzarne le peculiarità. igraph è una libreria open source trasversa- le utilizzata comunemente per linguaggi di programmazione indirizzati alla lettura di dati: Python, R e C/C++. Le doti principali di essa riguardano la portabilità, l’efficienza e la semplicità d’uso.

PyGraphwiz [39]: libreria open source indirizzata alla visualizzazione di net- work data. La sua prerogativa è quella di rendere reti di dati complesse fruibili in termini di visualizzazione e apprendimento.

Graphistry [40]: libreria di estrazione di dati per la renderizzazione grafica. Di recente sviluppo, questa libreria rende rapida e semplice la realiz-

CAPITOLO 4. DATI E STRUMENTI DI ANALISI

zazione e la visualizzazione di grafi e strutture di dati. Graphistry è uno strumento molto potente per il quale è richiesto un intenso lavoro di CPU. Per questo motivo, l’accesso alle sue API deve essere richiesto per tempo, e successivamente accordato, al CEO fondatore dell’azienda statunitense che cura Graphistry.

Documenti correlati