SciRuby / daru

Gem VersionBuild StatusGitterOpen Source Helpers

Introduction

daru (Data Analysis in RUby) egy könyvtár adatok tárolására, elemzésére, manipulálására és megjelenítésére Ruby-ban.

daru megkönnyíti és intuitívvá teszi az adatok feldolgozását elsősorban 2 adatszerkezeten keresztül:Daru::DataFrame és Daru::Vector. Tiszta Ruby-ban íródott, minden ruby implementációval működik.tesztelve MRI 2.5.1 és 2.7.1.

daru plugin gems

  • daru-view

daru-view a webes alkalmazásban & IRubynotebook egyszerű és interaktív ábrázolásra szolgál. Bármilyen Ruby webalkalmazás keretrendszerben működhet, mint a Rails, Sinatra, Nanoc és remélhetőleg másokban is.

Cikkek/Blogok, amelyek összefoglalják a daru-view hatékony funkcióit:

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

This gem extends support for many Import and Export methods of Daru::DataFrame. Ennek a gemnek az a célja, hogy segítse az adatelemzéssel vagy webfejlesztéssel foglalkozó Rubyistákat azzal, hogy egy általános célú konverziós könyvtárként szolgál, amely egy formátumú bemenetet fogad (mondjuk JSON) és egy másik formátumba konvertálja (mondjuk Avro), miközben hihetetlenül egyszerűvé teszi az adatelemzés megkezdését a daruval. Bővebben a SciRuby/blog/daru-io-ban lehet olvasni.

Jellemzők

  • Adatstruktúrák:
    • Vector – Egy alapvető 1-D vektor.
    • DataFrame – Egy 2-D táblázatszerű struktúra adathalmazok manipulálására és tárolására. Ez a daru elsődleges adatszerkezete.
  • Kompatibilis az IRuby notebook, statsample, statsample-glm és statsample-timeseries programokkal.
  • Támogatja az idősorokat.
  • Szerűen és hierarchikusan indexelt adatstruktúrák.
  • Flexibilis és intuitív API az adatok manipulálásához és elemzéséhez.
  • Egyszerű ábrázolás, statisztika és aritmetika.
  • Bőséges iterátorok.
  • Optionális sebesség- és helyoptimalizálás az MRI-n NMatrix és GSL segítségével.
  • Az adatok egyszerű felosztása, aggregálása és csoportosítása.
  • Gyors adatcsökkentés pivot táblázatokkal a gyors adatösszefoglaláshoz.
  • Adatok importálása és exportálása Excel, CSV, SQL-adatbázisok, ActiveRecord és egyszerű szöveges fájlokból és azokba.

Telepítés

$ gem install daru

Füzetek

Füzetek a legtöbb felhasználási esetről

  • A legtöbb Daru funkció áttekintése
  • Vektorok és DataFrame alapszintű létrehozása
  • A Daru részletes használata::Vektor
  • A Daru::DataFrame részletes használata
  • Adatok keresése és kombinálása a daruban
  • Adatok csoportosítása, felosztása és pivotálása
  • Kategorikus adatok használata

Vizualizáció

  • Adatok vizualizálása a Daru::DataFrame
  • Plotting using Nyaplot
  • Plotting using GnuplotRB
  • Vector plotting with Gruff
  • DataFrame plotting with Gruff

Notebooks on Time series

  • Basic Time Series
  • Az idősorok elemzése és ábrázolása

Füzetek az indexelésről

  • Indexelés vektorban
  • Indexelés DataFrame-ben

Esettanulmányok

  • Logisztikus regresszióelemzés daruval és statsample-rel.glm
  • A legtöbbet hallott előadók megtalálása és ábrázolása egy Last.fm adathalmaz
  • Babanevek elemzése daruval
  • Kategorikus adatok példahasználata
  • Kategorikus index példahasználata

Blogbejegyzések

  • Adatelemzés a RUby: Alapvető adatmanipuláció és ábrázolás
  • Adatelemzés a RUby-ban: Osztás, rendezés, adatok és adattípusok aggregálása
  • Adatok keresése és kombinálása a daruban
  • Elvezetés az adathalmazok elemzéséhez a daru könyvtárral

Idősorok

  • Az idősorok elemzése a daruban
  • Date Offsets in daru

Kategorikus adatok

  • Kategorikus index
  • Kategorikus adatok
  • Visualizáció kategorikus adatokkal

Alapvető használat

daru két fő adatszerkezetet tár fel: DataFrame és Vector. A Vector egy alapvető 1-D struktúra, amely egy címkézett Array-nek felel meg, míg a DataFrame – a daru elsődleges adatstruktúrája – egy 2-D táblázatszerű struktúra adathalmazok manipulálására és tárolására.

Basic DataFrame intitializáció.

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

init0

Adatok betöltése CSV fájlból.

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

init1

Bázis adatmanipuláció

Sorok kiválasztása.

data_frame.row

man0

Oszlopok kiválasztása.

data_frame

man1

Sorok tartománya.

data_frame.row

man2

Az első 2 sor.

data_frame.first(2)

man3

Az utolsó 2 sor.

data_frame.last(2)

man4

Új oszlop hozzáadása.

data_frame = 

man5

Új oszlop létrehozása más oszlopok adatai alapján.

data_frame = data_frame - data_frame

man6

Feltétel alapú kiválasztás

Az országok kiválasztása az egyes országokban eladott gallonok száma alapján. Az Arel által meghatározotthoz hasonló szintaxist használunk, azaz a where záradék használatával.

data_frame.where(data_frame.lt(300))

con0

Az #where metódusba átadhatjuk a bólusműveletek kombinációját, és annak működnie kell:

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

con1

Plotting

Daru támogatja az interaktív grafikonok ábrázolását nyaplot segítségével. A #plot metódussal könnyen létrehozhatunk egy plotot. Itt az Y tengelyen az eladott gallonokat, az X tengelyen pedig a márka nevét ábrázoljuk egy oszlopdiagramban.

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

A nyaplot mellett a daru a gnuplotrb-vel is támogatja az out of the box plottingot.

Dokumentáció

Dokumentáció itt található.

Hozzájárulás

Válasszon ki egy funkciót az útitervből vagy a hibakövetőről, vagy gondoljon ki egy sajátot, és küldjön nekem egy Pull Requestet!

A részleteket lásd CONTRIBUTING.

Köszönetnyilvánítás

  • Google és a Ruby Science Foundation a Google Summer of Code 2016 támogatásért a sebességjavításhoz és a kategorikus adatok támogatásának megvalósításához. Külön köszönet @lokeshh-nek, @zverok-nak és @agisga-nak az erőfeszítéseikért.
  • Google és a Ruby Science Foundation a Google Summer of Code 2015 támogatásért a daru továbbfejlesztéséért és más ruby gemekkel való integrálásáért.
  • Köszönjük a last.fm-nek, hogy a felhasználói adatokat a nyilvánosság számára elérhetővé tette.

Szólj hozzá!