SciRuby / daru

Versiunea GemStarea de construcțieGitterAjutători open source

Introducere

daru (Data Analysis in RUby) este o bibliotecă pentru stocarea, analiza, manipularea și vizualizarea datelor în Ruby.

daru facilitează și face intuitivă prelucrarea predominantă a datelor prin intermediul a 2 structuri de date:Daru::DataFrame și Daru::Vector. Scrisă în Ruby pur funcționează cu toate implementările ruby. testată cu MRI 2.5.1 și 2.7.1.

daru plugin gems

  • daru-view

daru-view este pentru o reprezentare grafică ușoară și interactivă în aplicația web & IRubynotebook. Poate funcționa în orice cadru de aplicații web Ruby, cum ar fi Rails, Sinatra, Nanoc și sperăm că și în altele.

Articole/Blogs, care rezumă caracteristicile puternice ale daru-view:

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

Această gemă extinde suportul pentru multe metode de Import și Export ale Daru::DataFrame. Această gemă este menită să îi ajute pe rubiniștii care se ocupă cu analiza datelor sau cu dezvoltarea web, servind ca o bibliotecă de conversie de uz general care preia datele de intrare într-un format (să zicem, JSON) și le convertește într-un alt format (să zicem, Avro), făcând în același timp incredibil de ușoară inițierea în analiza datelor cu daru. Se pot citi mai multe în SciRuby/blog/daru-io.

Caracteristici

  • Structuri de date:
    • Vector – Un vector 1-D de bază.
    • DataFrame – O structură de tip foaie de calcul 2-D pentru manipularea și stocarea seturilor de date. Aceasta este structura principală de date a lui daru.
  • Compatibil cu IRuby notebook, statsample, statsample-glm și statsample-timeseries.
  • Suport pentru serii de timp.
  • Structuri de date indexate în mod ierarhic.
  • API flexibil și intuitiv pentru manipularea și analiza datelor.
  • Tratări ușoare, statistici și aritmetică.
  • Iteratori abundenți.
  • Opțiune opțională de optimizare a vitezei și spațiului pe RMN cu NMatrix și GSL.
  • Spargerea, agregarea și gruparea ușoară a datelor.
  • Reducerea rapidă a datelor cu ajutorul tabelelor pivot pentru rezumarea rapidă a datelor.
  • Import și export de date din și în Excel, CSV, baze de date SQL, ActiveRecord și fișiere de text simplu.

Instalare

$ gem install daru

Caiete de notițe

Caiete de notițe privind cele mai multe cazuri de utilizare

  • Vizualizare generală a majorității funcțiilor daru
  • Crearea de bază a vectorilor și a cadrului de date
  • Utilizarea detaliată a Daru::Vector
  • Utilizarea detaliată a Daru::DataFrame
  • Cercetarea și combinarea datelor în daru
  • Gruparea, divizarea și pivotarea datelor
  • Utilizarea datelor categorice

Vizualizare

  • Vizualizarea datelor cu Daru::DataFrame
  • Plotting using Nyaplot
  • Plotting using GnuplotRB
  • Plotting vectorial cu Gruff
  • Plotting DataFrame cu Gruff

Caiete despre serii de timp

  • Basic Time Series
  • .

  • Analiză și trasare a seriilor temporale

Caiete despre indexare

  • Indexare în Vector
  • Indexare în DataFrame

Studii de caz

  • Analiză de regresie logistică cu daru și statsample-glm
  • Finding and Plotting most heard artists from a Last.fm dataset
  • Analiza numelor de copii cu daru
  • Exemplu de utilizare a datelor categorice
  • Exemplu de utilizare a indexului categoric

Blog Posts

  • Analiza datelor în RUby: Manipularea și reprezentarea grafică a datelor de bază
  • Data Analysis in RUby: Împărțirea, sortarea, agregarea datelor și tipuri de date
  • Căutarea și combinarea datelor în daru
  • Introducere la analiza seturilor de date cu biblioteca daru

Seriile de timp

  • Analiza seriilor de timp în daru
  • Dată Offsets in daru

Date categoriale

  • Index categoric
  • Date categoriale
  • Vizualizare cu date categoriale

Utilizare de bază

daru expune două structuri de date majore: DataFrame și Vector. Vectorul este o structură de bază 1-D care corespunde unui Array etichetat, în timp ce DataFrame – structura de date principală a lui daru – este o structură 2-D de tip foaie de calcul pentru manipularea și stocarea seturilor de date.

Inițializare de bază a DataFrame.

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

init0

Încărcarea datelor din fișiere CSV.

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

init1

Manipulare de bază a datelor

Selectarea rândurilor.

data_frame.row

man0

Selectarea coloanelor.

data_frame

man1

Un interval de rânduri.

data_frame.row

man2

Primele 2 rânduri.

data_frame.first(2)

man3

Ultimele 2 rânduri.

data_frame.last(2)

man4

Aducerea unei noi coloane.

data_frame = 

man5

Crearea unei noi coloane pe baza datelor din alte coloane.

data_frame = data_frame - data_frame

man6

Selecția bazată pe condiții

Selectarea țărilor pe baza numărului de galoane vândute în fiecare. Utilizăm o sintaxă similară cu cea definită de Arel, și anume prin utilizarea clauzei where.

data_frame.where(data_frame.lt(300))

con0

Puteți trece o combinație de operații booleene în metoda #where și ar trebui să funcționeze bine:

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

con1

Plotări

Daru suportă trasarea de grafice interactive cu nyaplot. Puteți crea cu ușurință un grafic cu metoda #plot. Aici reprezentăm galonii vânduți pe axa Y și numele mărcii pe axa X într-un grafic cu bare.

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

În plus față de nyaplot, daru suportă și reprezentarea grafică out of the box cu gnuplotrb.

Documentație

Documentele pot fi găsite aici.

Contribuire

Scoateți o caracteristică din Roadmap sau din issue tracker sau gândiți-vă la una proprie și trimiteți-mi un Pull Request!

Pentru detalii vedeți CONTRIBUTING.

Recunoștințe

  • Google și Ruby Science Foundation pentru grantul Google Summer of Code 2016 pentru îmbunătățiri de viteză și implementarea suportului pentru date categorice. Mulțumiri speciale lui @lokeshh, @zverok și @agisga pentru eforturile lor.
  • Google și Ruby Science Foundation pentru grantul Google Summer of Code 2015 pentru dezvoltarea în continuare a lui daru și integrarea acestuia cu alte bijuterii ruby.
  • Mulțumim last.fm pentru că a făcut accesibile publicului datele utilizatorilor.

.

Lasă un comentariu