Johdanto
daru (Data Analysis in RUby) on kirjasto datan tallentamiseen, analysoimiseen, manipulointiin ja visualisointiin Rubyllä.
daru tekee datan käsittelystä helppoa ja intuitiivista pääasiassa kahden tietorakenteen avulla: Daru::DataFrame
ja Daru::Vector
. Kirjoitettu puhtaalla Rubyllä toimii kaikkien ruby-toteutusten kanssa.testattu MRI 2.5.1:llä ja 2.7.1:llä.
daru plugin gems
- daru-view
daru-view on helppoon ja vuorovaikutteiseen piirtämiseen web-sovelluksessa & IRubynotebook. Se voi toimia kaikissa Ruby-verkkosovelluskehyksissä kuten Rails, Sinatra, Nanoc ja toivottavasti myös muissa.
Artikkelit/Blogit, jotka tiivistävät daru-view:n tehokkaat ominaisuudet:
- GSoC 2017 daru-view
- GSoC 2018 Progress Report
- HighCharts Virallinen blogikirjoitus koskien daru-view
- daru-io
Tämä helmi laajentaa tukea monille Daru::DataFrame
:n Tuonti- ja Vientimenetelmille. Tämä helmi on tarkoitettu auttamaan Rubyisteja, jotka harrastavat data-analyysiä tai web-kehitystä, toimimalla yleiskäyttöisenä muuntokirjastona, joka ottaa syötteen yhdessä muodossa (vaikkapa JSON) ja muuntaa sen toiseen muotoon (vaikkapa Avro) samalla kun se tekee uskomattoman helpoksi päästä alkuun datan analysoinnissa darun avulla. Lisää voi lukea SciRuby/blog/daru-io.
Ominaisuudet
- Tietorakenteet:
- Vector – Perus 1-D vektori.
- DataFrame – 2-D taulukkolaskentataulukon kaltainen rakenne datajoukkojen käsittelyyn ja tallentamiseen. Tämä on darun ensisijainen tietorakenne.
- Yhteensopiva IRuby notebookin, statsamplen, statsample-glm:n ja statsample-timeseriesin kanssa.
- Tuki aikasarjoille.
- Selkeästi ja hierarkkisesti indeksoidut tietorakenteet.
- Joustava ja intuitiivinen API datan manipulointiin ja analysointiin.
- Helppo piirtäminen, tilastointi ja aritmetiikka.
- Rikkaat iteraattorit.
- Vaihtoehtoinen nopeuden ja tilan optimointi MRI:ssä NMatrixin ja GSL:n avulla.
- Helppo datan jakaminen, aggregaatio ja ryhmittely.
- Nopea datan pelkistäminen pivot-taulukoilla nopeaa datan yhteenvetoa varten.
- Datan tuonti- ja vientitapahtumat excelistä ja exceliin, CSV:stä, SQL-tietokannoista, ActiveRecordista ja tavallisista tekstitiedostoista.
Asennus
$ gem install daru
Muistiinpanovihkot
Muistiinpanovihkot useimmista käyttötapauksista
- Yleiskatsaus useimpiin daru-toimintoihin
- Vektoreiden ja DataFrame-tietokehyksen perustavanlaatuinen luominen
- Detaljin Darun käyttö::Vector
- Detailed Usage of Daru::DataFrame
- Datan etsiminen ja yhdistäminen darussa
- Datan ryhmittely, jakaminen ja kääntäminen
- Kategorisen datan käyttö
Visualisointi
- Datan visualisointi Daru::DataFrame
- Plotting using Nyaplot
- Plotting using GnuplotRB
- Vector plotting with Gruff
- DataFrame plotting with Gruff
Muistiinpanovihkoja aikasarjoista
- Perus-aikasarjojen perusteet
- Aikasarja-analyysi ja piirtäminen
Muistiinpanovihkot indeksoinnista
- Indeksointi vektorissa
- Indeksointi DataFrame:ssa
Tapaustutkimukset
- Logistinen regressioanalyysi daru:lla ja pistelogistiikalla
- Logistinen regressioanalyysi daru:lla ja pistelogistiikalla.glm
- Kuulutuimpien artistien löytäminen ja piirtäminen Last.fm dataset
- Analyzing baby names with daru
- Example use of Categorical Data
- Example use of Categorical Index
Blog Posts
- Data Analysis in RUby: Perusdatan käsittely ja piirtäminen
- Data-analyysi RUbyssä: Jakaminen, lajittelu, datan aggregointi ja tietotyypit
- Datan etsiminen ja yhdistäminen darussa
- Esittely datajoukkojen analysointiin daru-kirjastolla
Aikasarjat
- Aikasarjojen analysointi darussa
- Päivämääräys Offsets in daru
Kategorinen data
- Kategorinen indeksi
- Kategorinen data
- Visualisointi kategorisen datan avulla
Peruskäyttö
daru paljastaa kaksi tärkeintä datarakennetta:
DataFrame
jaVector
. Vektori on 1-D perusrakenne, joka vastaa merkittyä Arrayta, kun taasDataFrame
– darun ensisijainen tietorakenne – on 2-D taulukkolaskentataulukon kaltainen rakenne datajoukkojen käsittelyyn ja tallentamiseen.Basic DataFrame intitialization.
data_frame = Daru::DataFrame.new( { 'Beer' => , 'Gallons sold' => }, index: )data_frame
Datan lataaminen CSV-tiedostoista.
df = Daru::DataFrame.from_csv('TradeoffData.csv')
Perusdatan käsittely
Rivien valitseminen.
data_frame.row
Sarakkeiden valitseminen.
data_frame
Rivien vaihteluväli.
data_frame.row
2 ensimmäistä riviä.
data_frame.first(2)
Viimeiset 2 riviä.
data_frame.last(2)
Uuden sarakkeen lisääminen.
data_frame =
Uuden sarakkeen luominen muissa sarakkeissa olevien tietojen perusteella.
data_frame = data_frame - data_frame
Ehtoihin perustuva valinta
Maiden valitseminen kussakin maassa myytyjen gallonoiden määrän perusteella. Käytämme samanlaista syntaksia kuin Arelin määrittelemä, eli käyttämällä
where
-lauseketta.data_frame.where(data_frame.lt(300))
Metodiin
#where
voi välittää boolean-operaatioiden yhdistelmän, ja sen pitäisi toimia hienosti:data_frame.where( data_frame .in() .and( data_frame.gt(520).or(data_frame.lt(250)) ))
Plottaaminen
Daru tukee vuorovaikutteisten graafien plottaamista nyaplot-ohjelmalla. Voit luoda plotin helposti
#plot
-metodilla. Tässä piirretään myydyt gallonat Y-akselilla ja tuotemerkin nimi X-akselilla pylväsdiagrammina.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
Nyaplotin lisäksi daru tukee piirtämistä out of the boxilla gnuplotrb:llä.
Dokumentaatio
Dokumentit löytyvät täältä.
Contributing
Poimi ominaisuus tiekartasta tai ongelmanseurannasta tai keksi oma ominaisuutesi ja lähetä minulle Pull Request!
Katso lisätietoja kohdasta CONTRIBUTING.
Kiitokset
- Google ja Ruby Science Foundation Googlen Summer of Code 2016 -apurahasta nopeusparannuksiin ja kategorisen datan tuen toteuttamiseen. Erityiskiitokset @lokeshh:lle, @zverok:lle ja @agisga:lle heidän ponnisteluistaan.
- Google ja Ruby Science Foundation Google Summer of Code 2015 -apurahasta darun jatkokehittämiseen ja sen integroimiseen muihin ruby-jalokiviin.
- Kiitos last.fm:lle siitä, että saatte käyttäjätiedot yleisön käyttöön.