SciRuby / daru

Gem VersionBuild StatusGitterOpen Source Helpers

Wprowadzenie

daru (Data Analysis in RUby) jest biblioteką do przechowywania, analizy, manipulacji i wizualizacji danych w Ruby.

daru pozwala na łatwe i intuicyjne przetwarzanie danych głównie poprzez 2 struktury danych: Daru::DataFrame i Daru::Vector. Napisany w czystym Ruby, działa ze wszystkimi implementacjami Ruby.Testowany z MRI 2.5.1 i 2.7.1.

wtyczka daru gems

  • daru-view

daru-view jest do łatwego i interaktywnego tworzenia wykresów w aplikacji internetowej & IRubynotebook. Może działać w każdym frameworku aplikacji internetowych Ruby jak Rails, Sinatra, Nanoc i miejmy nadzieję, że w innych też.

Artykuły/Blogi, które podsumowują potężne cechy daru-view:

  • GSoC 2017 daru-view
  • GSoC 2018 Progress Report
  • HighCharts Oficjalny wpis na blogu dotyczący daru-view
  • daru-io

Ten klejnot rozszerza wsparcie dla wielu metod Import i Export z Daru::DataFrame. Ten gem ma na celu pomóc Rubinistom, którzy zajmują się analizą danych lub tworzeniem stron internetowych, służąc jako biblioteka konwersji ogólnego przeznaczenia, która pobiera dane wejściowe w jednym formacie (powiedzmy JSON) i konwertuje je do innego formatu (powiedzmy Avro), jednocześnie sprawiając, że rozpoczęcie analizowania danych z daru jest niezwykle proste. Można przeczytać więcej w SciRuby/blog/daru-io.

Cechy

  • Struktury danych:
    • Vector – Podstawowy wektor 1-D.
    • DataFrame – 2-D struktura podobna do arkusza kalkulacyjnego do manipulowania i przechowywania zestawów danych. Jest to podstawowa struktura danych daru.
  • Kompatybilność z IRuby notebook, statsample, statsample-glm i statsample-timeseries.
  • Wsparcie dla szeregów czasowych.
  • Samodzielnie i hierarchicznie indeksowane struktury danych.
  • Elastyczne i intuicyjne API do manipulacji i analizy danych.
  • Łatwe wykreślanie, statystyki i arytmetyka.
  • Przeróżne iteratory.
  • Opcjonalna optymalizacja prędkości i przestrzeni na MRI z NMatrix i GSL.
  • Łatwe dzielenie, agregowanie i grupowanie danych.
  • Szybka redukcja danych z tabelami przestawnymi dla szybkiego podsumowania danych.
  • Import i eksport danych z i do Excela, CSV, baz danych SQL, ActiveRecord i zwykłych plików tekstowych.

Instalacja

$ gem install daru

Podręczniki

Podręczniki dotyczące większości przypadków użycia

  • Przegląd większości funkcji daru
  • Podstawowe tworzenie wektorów i DataFrame
  • Szczegółowe użycie Daru::Vector
  • Szczegółowe użycie Daru::DataFrame
  • Wyszukiwanie i łączenie danych w daru
  • Grupowanie, dzielenie i przestawianie danych
  • Używanie danych kategorycznych

Wizualizacja

  • Wizualizowanie danych za pomocą Daru::DataFrame
  • Plotting using Nyaplot
  • Plotting using GnuplotRB
  • Vector plotting with Gruff
  • DataFrame plotting with Gruff

Notebooks on Time series

  • Basic Time Series
  • .

  • Time Series Analysis and Plotting

Notebooks on Indexing

  • Indexing in Vector
  • Indexing in DataFrame

Case Studies

  • Logistic Regression Analysis with daru and statsample-.glm
  • Finding and Plotting most heard artists from a Last.fm dataset
  • Analiza imion dziecięcych za pomocą daru
  • Przykładowe użycie danych kategorycznych
  • Przykładowe użycie indeksu kategorycznego

Posty na blogu

  • Analiza danych w RUby: Podstawowa manipulacja danymi i wykreślanie
  • Analiza danych w RUby: Dzielenie, sortowanie, sortowanie, agregowanie danych i typy danych
  • Wyszukiwanie i łączenie danych w daru
  • Wprowadzenie do analizy zbiorów danych za pomocą biblioteki daru

Szeregi czasowe

  • Analiza szeregów czasowych w daru
  • Data Offsets in Daru

Categorical Data

  • Categorical Index
  • Categorical Data
  • Visualization with Categorical Data

Basic Usage

daru eksponuje dwie główne struktury danych: DataFrame i Vector. Wektor jest podstawową strukturą 1-D odpowiadającą etykietowanej tablicy, podczas gdy DataFrame – podstawowa struktura danych daru – jest 2-D strukturą podobną do arkusza kalkulacyjnego, służącą do manipulowania i przechowywania zestawów danych.

Podstawowa intrializacja DataFrame.

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

init0

Wczytywanie danych z plików CSV.

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

init1

Podstawowa manipulacja danymi

Wybieranie wierszy.

data_frame.row

man0

Wybieranie kolumn.

data_frame

man1

Zakres wierszy.

data_frame.row

man2

Pierwsze 2 wiersze.

data_frame.first(2)

man3

Ostatnie 2 wiersze.

data_frame.last(2)

man4

Dodanie nowej kolumny.

data_frame = 

man5

Tworzenie nowej kolumny na podstawie danych w innych kolumnach.

data_frame = data_frame - data_frame

man6

Wybór na podstawie warunku

Wybór krajów na podstawie liczby galonów sprzedanych w każdym z nich. Używamy składni podobnej do tej zdefiniowanej przez Arela, tj. poprzez użycie klauzuli where.

data_frame.where(data_frame.lt(300))

con0

Możesz przekazać kombinację operacji boolean do metody #where i powinna ona działać dobrze:

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

con1

Wykreślanie wykresów

Daru obsługuje wykreślanie interaktywnych wykresów za pomocą nyaplot. Możesz łatwo utworzyć wykres za pomocą metody #plot. Tutaj wykreślamy sprzedane galony na osi Y i nazwę marki na osi X w wykresie słupkowym.

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

Oprócz nyaplot, daru obsługuje również wykreślanie po wyjęciu z pudełka za pomocą gnuplotrb.

Dokumentacja

Dokumenty można znaleźć tutaj.

Wnoszenie wkładu

Wybierz cechę z mapy drogowej lub issue trackera albo wymyśl własną i wyślij mi Pull Request!

Dla szczegółów zobacz CONTRIBUTING.

Podziękowania

  • Google i Ruby Science Foundation za grant Google Summer of Code 2016 za zwiększenie prędkości i wdrożenie wsparcia dla danych kategorycznych. Specjalne podziękowania dla @lokeshh, @zverok i @agisga za ich wysiłki.
  • Google i Ruby Science Foundation za grant Google Summer of Code 2015 za dalszy rozwój daru i zintegrowanie go z innymi rubinowymi klejnotami.
  • Dziękuję last.fm za udostępnienie danych użytkowników publicznie.

.

Dodaj komentarz