SciRuby / daru

Gem VersionBuild StatusGitterOpen Source Helpers

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 ja Vector. Vektori on 1-D perusrakenne, joka vastaa merkittyä Arrayta, kun taas DataFrame – 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

    init0

    Datan lataaminen CSV-tiedostoista.

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

    init1

    Perusdatan käsittely

    Rivien valitseminen.

    data_frame.row

    man0

    Sarakkeiden valitseminen.

    data_frame

    man1

    Rivien vaihteluväli.

    data_frame.row

    man2

    2 ensimmäistä riviä.

    data_frame.first(2)

    man3

    Viimeiset 2 riviä.

    data_frame.last(2)

    man4

    Uuden sarakkeen lisääminen.

    data_frame = 

    man5

    Uuden sarakkeen luominen muissa sarakkeissa olevien tietojen perusteella.

    data_frame = data_frame - data_frame

    man6

    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))

    con0

    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)) ))

    con1

    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

    plot0

    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.

Jätä kommentti