SciRuby / daru

Gem VersionBuild StatusGitterOpen Source Helpers

Inleiding

daru (Data Analysis in RUby) is een bibliotheek voor opslag, analyse, manipulatie en visualisatie van gegevens in Ruby.

daru maakt het gemakkelijk en intuïtief om gegevens overwegend te verwerken door middel van 2 gegevensstructuren:Daru::DataFrame en Daru::Vector. Geschreven in pure Ruby werkt met alle Ruby implementaties.Getest met MRI 2.5.1 en 2.7.1.

daru plugin gems

  • daru-view

daru-view is voor eenvoudig en interactief plotten in webapplicatie & IRubynotebook. Het kan werken in alle Ruby web applicatie frameworks zoals Rails, Sinatra, Nanoc en hopelijk ook in andere.

Artikels/Blogs, die de krachtige eigenschappen van daru-view samenvatten:

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

Deze gem breidt ondersteuning uit voor veel Import en Export methoden van Daru::DataFrame. Deze gem is bedoeld om Ruby-gebruikers te helpen die zich bezighouden met data-analyse of webontwikkeling, door te dienen als een conversiebibliotheek voor algemene doeleinden die invoer in een bepaald formaat (bijvoorbeeld JSON) neemt en converteert naar een ander formaat (bijvoorbeeld Avro), terwijl het ook ongelooflijk eenvoudig wordt om aan de slag te gaan met het analyseren van gegevens met daru. Men kan meer lezen in SciRuby/blog/daru-io.

Features

  • Gegevensstructuren:
    • Vector – Een basis 1-D vector.
    • DataFrame – Een 2-D spreadsheet-achtige structuur voor het manipuleren en opslaan van datasets. Dit is daru’s primaire gegevensstructuur.
  • Compatibel met IRuby notebook, statsample, statsample-glm en statsample-timeseries.
  • Ondersteuning voor tijdreeksen.
  • Slimme en hiërarchisch geïndexeerde datastructuren.
  • Flexibele en intuïtieve API voor manipulatie en analyse van data.
  • Eenvoudig plotten, statistiek en rekenen.
  • Veel iterators.
  • Optimalisatie van snelheid en ruimte op MRI met NMatrix en GSL.
  • Eenvoudig splitsen, aggregeren en groeperen van gegevens.
  • Snel gegevens verkleinen met draaitabellen voor een snelle samenvatting van gegevens.
  • Import en export van gegevens van en naar Excel, CSV, SQL Databases, ActiveRecord en platte tekst bestanden.

Installatie

$ gem install daru

Notities

Notities over de meeste use-cases

  • Overzicht van de meeste daru-functies
  • Basiscreatie van Vectoren en DataFrame
  • Gedetailleerd gebruik van Daru::Vector
  • Gedetailleerd gebruik van Daru::DataFrame
  • Gegevens zoeken en combineren in daru
  • Gegroepeerde, opgesplitste en geplitste gegevens
  • Gebruik van categorische gegevens

Visualisatie

  • Visualisatie van gegevens met Daru::DataFrame
  • Plotten met Nyaplot
  • Plotten met GnuplotRB
  • Vector plotten met Gruff
  • DataFrame plotten met Gruff

Notitieboekjes over Tijdreeksen

  • Basis Tijdreeksen
  • Tijdreeksanalyse en plotten

Notities over Indexeren

  • Indexeren in Vector
  • Indexeren in DataFrame

Case Studies

  • Logistische Regressie Analyse met daru en statsample-glm
  • Het vinden en uitzetten van de meest beluisterde artiesten uit een Last.fm dataset
  • Analyseren van babynamen met daru
  • Voorbeeldgebruik van Categorical Data
  • Voorbeeldgebruik van Categorical Index

Blog Posts

  • Gegevensanalyse in RUby: Basisgegevensmanipulatie en plotten
  • Gegevensanalyse in RUby: Splitsen, sorteren, aggregeren van gegevens en gegevenstypen
  • Vinden en combineren van gegevens in daru
  • Inleiding tot het analyseren van datasets met daru bibliotheek

Tijdreeksen

  • Analyse van tijdreeksen in daru
  • Datum Offsets in daru

Categorische Gegevens

  • Categorische Index
  • Categorische Gegevens
  • Visualisatie met Categorische Gegevens

Basisgebruik

daru stelt twee belangrijke gegevensstructuren bloot: DataFrame en Vector. De Vector is een basis 1-D structuur die overeenkomt met een gelabelde Array, terwijl de DataFrame – daru’s primaire datastructuur – een 2-D spreadsheet-achtige structuur is voor het manipuleren en opslaan van datasets.

Basic DataFrame intitialisatie.

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

init0

Laden van gegevens uit CSV-bestanden.

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

init1

Basisgegevensmanipulatie

Selecteren van rijen.

data_frame.row

man0

Selecteren van kolommen.

data_frame

man1

Een bereik van rijen.

data_frame.row

man2

De eerste 2 rijen.

data_frame.first(2)

man3

De laatste 2 rijen.

data_frame.last(2)

man4

Een nieuwe kolom toevoegen.

data_frame = 

man5

Een nieuwe kolom maken op basis van gegevens in andere kolommen.

data_frame = data_frame - data_frame

man6

Selectie op basis van voorwaarden

Landen selecteren op basis van het aantal verkochte liters in elk land. We gebruiken een syntaxis die vergelijkbaar is met die van Arel, d.w.z. door de where-clausule te gebruiken.

data_frame.where(data_frame.lt(300))

con0

U kunt een combinatie van booleaanse bewerkingen doorgeven aan de methode #where en het zou prima moeten werken:

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

con1

Plotten

Daru ondersteunt het plotten van interactieve grafieken met nyaplot. U kunt eenvoudig een plot maken met de methode #plot. Hier plotten we de verkochte gallons op de Y-as en de naam van het merk op de X-as in een staafdiagram.

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

Naast nyaplot, ondersteunt daru ook plotten out of the box met gnuplotrb.

Documentatie

Docs kunnen hier worden gevonden.

Bijdragen

Kies een functie uit de Roadmap of de issue tracker of bedenk je eigen functie en stuur me een Pull Request!

Voor details zie Bijdragen.

Erkenningen

  • Google en de Ruby Science Foundation voor de Google Summer of Code 2016 grant voor snelheidsverbeteringen en implementatie van ondersteuning voor categorische data. Speciale dank aan @lokeshh, @zverok en @agisga voor hun inspanningen.
  • Google en de Ruby Science Foundation voor de Google Summer of Code 2015 grant voor het verder ontwikkelen van daru en het integreren met andere ruby gems.
  • Dank je last.fm voor het toegankelijk maken van gebruikersgegevens voor het publiek.

Plaats een reactie