Ruby 30周年記念イベント LT
Red Data Tools で切り開く Ruby の未来Kenta Murata2023.02.25Ruby 30周年記念イベント LT
View Slide
Ruby 30 周年おめでとうございます
self.introductionKenta Murata株式会社サイカ CROApache Arrow と CRuby のコミッターRed Data Tools メンバー
self.introductionKenta Murata株式会社サイカ CROApache Arrow と CRuby のコミッターRed Data Tools メンバー ← 今日はこの立場
Contents1. Red Data Tools2. Ruby 用データフレームライブラリ3. まとめ
Red Data Toolshttps://red-data-tools.github.io/ja/
Red Data Tools とはRuby用のデータ処理ツールを開発するプロジェクトいま Ruby 界隈で一番ホットな、データ処理ツールの開発者集団とてもよいポリシーを掲げている
Red Data Tools プロジェクトのポリシー1. Rubyコミュニティーを超えて協力する2. 非難することよりも手を動かすことが大事3. 一回だけの活発な活動よりも小さくてもいいので継続的に活動することが大事4. 現時点での知識不足は問題ではない5. 部外者からの非難は気にしない6. 楽しくやろう!
詳しくは
Red Data Tools の主なプロダクトRed Arrow ファミリーApache Arrow の Ruby バインディング (apache/arrow 内にある)Red Datasetsオープンデータにアクセスするための統一インターフェイスCharty複数のバックエンドをサポートする統計的可視化ライブラリunicode_plotターミナルでデータ可視化を行うライブラリYouPlotターミナルでデータ可視化を行う CLI ツール (unicode_plot を使用)
Ruby 用のデータフレームライブラリについて
データフレーム?データフレームは表の形のデータ構造トランザクション処理ではなく分析処理を主な用途とする表を行指向ではなく列指向で管理
行指向?列指向?
データフレーム?データフレームは表の形のデータ構造トランザクション処理ではなく分析処理を主な用途とする表を行単位ではなく列単位で管理選択、結合、集約などの操作、要素単位の演算複数のデータフレームを扱う操作と演算
Ruby 用データフレームライブラリRed AmberPolas RubypandasDaru
Red Amberhttps://github.com/heronshoes/red_amberRed Arrow をバックエンドとしてデータフレームを実装メモリ上のデータ構造は Arrow 形式Apache Arrow C++ の機能を利用できるRuby にとって自然なインターフェイスを目指しているheronshoes さんがモリモリと開発しているこれも Red Data Tools プロダクトのひとつ
Polars Rubyhttps://github.com/ankane/polars-rubyPolars という Rust 用データフレームライブラリのバインディングPolars は Rust 版 Apache Arrow を使っててめっちゃ速い (blazingly fast)
Polars の速さ凄く速いので pandas から polars に乗り換える Kaggler が続出している
Polars Rubyhttps://github.com/ankane/polars-rubyPolars という Rust 用データフレームライブラリのバインディングPolars は Rust 版 Apache Arrow 使っててめっちゃ速い (blazingly fast)Red Amber と同様にメモリ上のデータ構造は Arrow 形式Polars の Python 版 API に従って実装されているankane さんがモリモリと開発している
pandashttps://github.com/mrkn/pandas.rbPython 用データフレームである pandas を Ruby から使えるpycall を用いて CPython を直接呼び出す形で実装しているpycall のおかげで df.applymap(->(x){ x * 5 })のような事も可能pandas の全機能について網羅テストをしてないため、未対応の機能があるかもpycall の制限を引き継ぐので、メインスレッド以外では使えないなどの制限がある
daruhttps://github.com/SciRuby/daruおそらく最古の Ruby 用データフレームライブラリPure Ruby で実装されている!!遅いけど、Ruby さえあれば動く利点もある残念ながら最近はまったくメンテされていない
25周年のとき (5年前) にあったものpandasDaru30周年目で増えたものRed AmberPolars Ruby
5年で2つも増えた!!Red Amber は Rubyist が使いやすいデータフレームのインターフェイスを目指しているPolars Ruby は最速データフレームの Ruby バインディングどちらも Apache Arrow という共通基盤の上に乗っているどちらも活発に開発が進んでいる
この波に乗るしかない!!Rubyist にとって使いやすいデータフレームを作れるのは Red Amber の良いところRed Data Tools に参加して一緒に Red Amber を盛り上げませんか?最速を求めて Polars Ruby を弄るのも良いと思う (Charty 対応とか!)Daru をメンテする人も増えてほしい
まとめ: Red Data Tools に参加しよう