SciRuby / daru

Versione del semeStato di compilazioneGitterOpen Source Helpers

Introduzione

daru (Data Analysis in RUby) è una libreria per la memorizzazione, analisi, manipolazione e visualizzazione di dati in Ruby.

daru rende facile e intuitivo elaborare i dati in modo predominante attraverso 2 strutture dati: Daru::DataFrame e Daru::Vector. Scritto in puro Ruby funziona con tutte le implementazioni di Ruby.Testato con MRI 2.5.1 e 2.7.1.

daru plugin gems

  • daru-view

daru-view è per il tracciamento facile e interattivo nell’applicazione web & IRubynotebook. Può funzionare in qualsiasi framework di applicazioni web Ruby come Rails, Sinatra, Nanoc e si spera anche in altri.

Articoli/Blog, che riassumono le potenti caratteristiche di daru-view:

  • GSoC 2017 daru-view
  • GSoC 2018 Progress Report
  • HighCharts Official blog post regarding daru-view
  • daru-io

Questa gemma estende il supporto per molti metodi Import ed Export di Daru::DataFrame. Questa gemma ha lo scopo di aiutare i rubyisti che si occupano di analisi dei dati o di sviluppo web, fungendo da libreria di conversione generale che prende l’input in un formato (ad esempio, JSON) e lo converte in un altro formato (ad esempio, Avro), rendendo anche incredibilmente facile iniziare l’analisi dei dati con daru. Si può leggere di più in SciRuby/blog/daru-io.

Caratteristiche

  • Strutture dati:
    • Vettore – Un vettore 1-D di base.
    • DataFrame – Una struttura 2-D simile a un foglio di calcolo per manipolare e memorizzare insiemi di dati. Questa è la struttura dati primaria di daru.
  • Compatibile con IRuby notebook, statsample, statsample-glm e statsample-timeseries.
  • Supporto per serie temporali.
  • Strutture dati indicizzate in modo semplice e gerarchico.
  • Apipi flessibile e intuitiva per la manipolazione e l’analisi dei dati.
  • Facile tracciare, statistiche e aritmetica.
  • Pieno numero di iteratori.
  • Ottimizzazione opzionale della velocità e dello spazio su RM con NMatrix e GSL.
  • Facile suddivisione, aggregazione e raggruppamento dei dati.
  • Riduzione rapida dei dati con tabelle pivot per una rapida sintesi dei dati.
  • Importazione ed esportazione dei dati da e verso Excel, CSV, database SQL, ActiveRecord e file di testo semplice.

Installazione

$ gem install daru

Quaderni

Quaderni sulla maggior parte dei casi d’uso

  • Panoramica della maggior parte delle funzioni Daru
  • Creazione base di Vettori e DataFrame
  • Uso dettagliato di Daru::Vector
  • Uso dettagliato di Daru::DataFrame
  • Ricerca e combinazione di dati in Daru
  • Raggruppamento, divisione e rotazione di dati
  • Uso di dati categorici

Visualizzazione

  • Visualizzazione di dati con Daru::DataFrame
  • Ploting usando Nyaplot
  • Ploting usando GnuplotRB
  • Ploting vettoriale con Gruff
  • DataFrame con Gruff

Quaderni sulle serie temporali

  • Serie temporali di base
  • Analisi delle serie temporali e tracciatura

Appunti sull’indicizzazione

  • Indicizzazione in vettore
  • Indicizzazione in DataFrame

Casi di studio

  • Analisi della regressione logistica con daru e statsample-glm
  • Trovare e tracciare gli artisti più ascoltati da un set di dati Last.fm
  • Analisi dei nomi dei bambini con daru
  • Uso di esempio dei dati categorici
  • Uso di esempio dell’indice categorico

Blog Posts

  • Analisi dei dati in RUby: Manipolazione dei dati e plottaggio di base
  • Analisi dei dati in RUby: Suddivisione, ordinamento, aggregazione di dati e tipi di dati
  • Ricerca e combinazione di dati in daru
  • Introduzione all’analisi di serie di dati con la libreria daru

Serie temporali

  • Analisi di serie temporali in daru
  • Data Offset in Daru

Dati categorici

  • Indice categorico
  • Dati categorici
  • Visualizzazione con dati categorici

Uso di base

daru espone due strutture dati principali: DataFrame e Vector. Il Vector è una struttura di base 1-D corrispondente a un Array etichettato, mentre il DataFrame – la struttura dati principale di daru – è una struttura 2-D simile a un foglio di calcolo per manipolare e memorizzare insiemi di dati.

Inizializzazione di base di DataFrame.

data_frame = Daru::DataFrame.new( { 'Beer' => , 'Gallons sold' => }, index: )data_frame

init0

Caricamento dati da file CSV.

df = Daru::DataFrame.from_csv('TradeoffData.csv')

init1

Manipolazione dati di base

Selezione righe.

data_frame.row

man0

Selezione colonne.

data_frame

man1

Un intervallo di righe.

data_frame.row

man2

Le prime 2 righe.

data_frame.first(2)

man3

Le ultime 2 righe.

data_frame.last(2)

man4

Aggiungere una nuova colonna.

data_frame = 

man5

Creazione di una nuova colonna basata sui dati di altre colonne.

data_frame = data_frame - data_frame

man6

Selezione basata su condizioni

Selezione dei paesi basata sul numero di galloni venduti in ognuno. Usiamo una sintassi simile a quella definita da Arel, cioè usando la clausola where.

data_frame.where(data_frame.lt(300))

con0

Puoi passare una combinazione di operazioni booleane nel metodo #where e dovrebbe funzionare bene:

data_frame.where( data_frame .in() .and( data_frame.gt(520).or(data_frame.lt(250)) ))

con1

Ploting

Daru supporta il plottaggio di grafici interattivi con nyaplot. Potete facilmente creare un grafico con il metodo #plot. Qui tracciamo i litri venduti sull’asse Y e il nome della marca sull’asse X in un grafico a barre.

data_frame.plot type: :bar, x: 'Beer', y: 'Gallons sold' do |plot, diagram| plot.x_label "Beer" plot.y_label "Gallons Sold" plot.yrange plot.width 500 plot.height 400end

plot0

Oltre a nyaplot, daru supporta anche il tracciamento out of the box con gnuplotrb.

Documentazione

I documenti possono essere trovati qui.

Contribuire

Prendi una caratteristica dalla Roadmap o dal tracker dei problemi o pensa alla tua e mandami una Pull Request!

Per i dettagli vedi CONTRIBUIRE.

Ringraziamenti

  • Google e la Ruby Science Foundation per la sovvenzione Google Summer of Code 2016 per i miglioramenti della velocità e l’implementazione del supporto ai dati categorici. Un ringraziamento speciale a @lokeshh, @zverok e @agisga per i loro sforzi.
  • Google e la Ruby Science Foundation per la sovvenzione Google Summer of Code 2015 per sviluppare ulteriormente daru e integrarlo con altre gemme ruby.
  • Grazie last.fm per aver reso i dati degli utenti accessibili al pubblico.

Lascia un commento